Можно создать пакет ZIP, содержащий сценарий PowerShell и модули зависимостей для использования в действиях расширяемости.

Существует два способа построения сценария для действий расширяемости.

  • Написание сценария непосредственно в редакторе действий расширяемости в Cloud Assembly.
  • Создание сценария в локальной среде и добавление его с соответствующими зависимостями в пакет ZIP.
С помощью пакета ZIP можно создать настраиваемый шаблон сценариев действий и зависимостей, которые можно импортировать в Cloud Assembly для использования в действиях расширяемости.
Примечание: Командлеты PowerCLI не нужно определять в виде зависимостей или объединять их в пакет ZIP. Командлеты PowerCLI предварительно настроены в среде выполнения PowerShell службы Cloud Assembly.

Кроме того, пакет ZIP можно использовать в ситуациях, когда модули, связанные с зависимостями в сценарии действий, не могут быть обработаны в службе Cloud Assembly, например, если в среде отсутствует доступ к Интернету.

Кроме того, пакет ZIP можно использовать для создания действий расширяемости, содержащих несколько файлов сценариев PowerShell. Использование нескольких файлов сценариев может быть полезно для организации структуры кода действий расширяемости.

Необходимые условия

Для этого требуется знакомство с PowerShell и PowerCLI. В Docker Hub можно найти образ Docker, содержащий PowerShell Core, PowerCLI 10, PowerNSX, а также несколько модулей и образцов сценариев, разработанных участниками сообщества.

Процедура

  1. На локальном компьютере создайте папку для сценария действий и зависимостей.
    Например, /home/user1/zip-action.
  2. Добавьте в папку основной сценарий PowerShell с расширением .psm1.
    Следующий сценарий представляет собой простую функцию PowerShell, которая называется main.psm1.
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    Примечание: Выходные данные действия расширяемости PowerShell основаны на последней переменной, отображаемой в теле функции. Все другие переменные во включенной функции отбрасываются.
  3. (Необязательно) Добавьте конфигурацию прокси-сервера в основной сценарий PowerShell с использованием параметров context. См. раздел Использование контекстных параметров для добавления конфигурации прокси-сервера в сценарии PowerShell.
  4. (Необязательно) Добавьте зависимости для сценария PowerShell.
    Примечание: Сценарий зависимости PowerShell должен использовать расширение .psm1. Используйте одно и то же имя для сценария и вложенной папки, в которой сохранен сценарий.
    1. а. Войдите в оболочку Linux PowerShell.
      Примечание: Среда выполнения расширяемости на основе действий в Cloud Assembly основана на Linux. Любые зависимости PowerShell, скомпилированные в среде Windows, могут сделать созданный пакет ZIP непригодным для использования. Любые установленные сторонние зависимости должны быть совместимы с VMware Photon OS, когда сценарии PowerShell выполняются в Photon OS.
    2. б. Перейдите в папку /home/user1/zip-action.
    3. в. Загрузите и сохраните модуль PowerShell, содержащий зависимости, запустив командлет Save-Module.
      Save-Module -Name <module name> -Path ./
    4. г. Повторите предыдущий шаг для всех дополнительных модулей зависимостей.
      Важно!: Убедитесь, что каждый модуль зависимости находится в отдельной вложенной папке. Дополнительные сведения о создании модулей PowerShell и управлении ими см. в разделе Написание модуля сценариев PowerShell.
  5. В назначенной папке выберите элементы сценария и, если применимо, вложенные папки модуля зависимостей и сожмите их в виде пакета ZIP.
    Примечание: Вложенные папки сценариев и модулей зависимостей должны храниться на корневом уровне пакета ZIP. При создании пакета ZIP в среде Linux может возникнуть проблема, если содержимое пакета не хранится на корневом уровне. При возникновении этой проблемы создайте пакет, запустив команду zip -r в оболочке командной строки.
    cd your_script_and_dependencies_folder
    zip -r ../your_action_ZIP.zip *

Дальнейшие действия

Используйте пакет ZIP для создания сценария действий расширяемости. См. раздел Создание действия с поддержкой расширяемости.