拡張性アクションで使用する PowerShell スクリプトと依存関係モジュールを含む ZIP パッケージを作成できます。

拡張性アクション用のスクリプトを作成するには、次の 2 つの方法があります。

  • Cloud Assembly の拡張性アクション エディタでスクリプトを直接記述する。
  • ローカル環境でスクリプトを作成し、関連する依存関係とともに ZIP パッケージに追加する。
ZIP パッケージを使用すると、 Cloud Assembly にインポートして拡張性アクションで使用できる、アクション スクリプトと依存関係の事前構成済みテンプレートをカスタムで作成できます。
注: PowerCLI コマンドレットを依存関係として定義したり、ZIP パッケージにバンドルしたりする必要はありません。PowerCLI コマンドレットは、 Cloud Assembly サービスの PowerShell ランタイムと共に事前構成されて提供されます。

さらに、ZIP パッケージは、環境でインターネット アクセスが利用できない場合など、アクション スクリプトの依存関係に関連付けられているモジュールを Cloud Assembly サービスで解決できないシナリオで使用できます。

また、ZIP パッケージを使用して、複数の PowerShell スクリプト ファイルを含む拡張性アクションを作成することもできます。複数のスクリプト ファイルを使用すると、拡張性アクション コードの構造を編成するのに役立ちます。

前提条件

PowerShell および PowerCLI について理解していることを確認します。Docker Hub では、PowerShell Core、PowerCLI 10、PowerNSX、および複数のコミュニティ モジュールとスクリプト サンプルを含む Docker イメージを見つけることができます。

手順

  1. ローカル マシンで、アクション スクリプトと依存関係用のフォルダを作成します。
    たとえば、 /home/user1/zip-action です。
  2. 拡張子が .psm1 のメイン PowerShell スクリプトをフォルダに追加します。
    次のスクリプトは、 main.psm1 というシンプルな PowerShell 関数を示しています。
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    注: PowerShell 拡張性アクションの出力は、関数の本体に表示されている最後の変数に基づいています。含まれている関数内のその他の変数はすべて破棄されます。
  3. (オプション) context パラメータを使用して、メイン PowerShell スクリプトにプロキシ設定を追加します。PowerShell スクリプトでの、コンテキスト パラメータを使用したプロキシ設定の追加を参照してください。
  4. (オプション) PowerShell スクリプトのすべての依存関係を追加します。
    注: PowerShell 依存関係スクリプトには、 .psm1 拡張子を使用する必要があります。スクリプトと、スクリプトが保存されているサブフォルダには、同じ名前を使用します。
    1. Linux PowerShell シェルにログインします。
      注: Cloud Assembly でのアクションベースの拡張性のランタイムは、Linux ベースです。Windows 環境でコンパイルされた PowerShell 依存関係によって、生成された ZIP パッケージが使用できなくなることがあります。インストールされるすべてのサードパーティ依存関係は、PowerShell スクリプトが Photon OS で実行されるため、VMware Photon OS と互換性がある必要があります。
    2. /home/user1/zip-action フォルダに移動します。
    3. Save-Module コマンドレットを実行して、依存関係が含まれている PowerShell モジュールをダウンロードして保存します。
      Save-Module -Name <module name> -Path ./
    4. 追加の依存関係モジュールについては、前のサブステップを繰り返します。
      重要: 各依存関係モジュールが個別のサブフォルダに配置されていることを確認します。PowerShell モジュールの記述と管理の詳細については、 PowerShell スクリプト モジュールを記述する方法を参照してください。
  5. 割り当てられたフォルダで、スクリプト要素と依存関係モジュール サブフォルダ(該当する場合)を選択して、ZIP パッケージに圧縮します。
    注: スクリプトと依存関係モジュール サブフォルダは両方とも、ZIP パッケージのルート レベルに保存する必要があります。Linux 環境で ZIP パッケージを作成すると、パッケージのコンテンツがルート レベルに保存されないという問題が発生することがあります。この問題が発生した場合は、コマンドライン シェルで zip -r コマンドを実行して、パッケージを作成してください。
    cd your_script_and_dependencies_folder
    zip -r ../your_action_ZIP.zip *

次のタスク

ZIP パッケージを使用して、拡張性アクション スクリプトを作成します。拡張性アクションの作成方法を参照してください。