拡張性アクションで使用する PowerShell スクリプトと依存関係モジュールを含む ZIP パッケージを作成できます。
拡張性アクション用のスクリプトを作成するには、次の 2 つの方法があります。
- Automation Assembler の拡張性アクション エディタでスクリプトを直接記述する。
- ローカル環境でスクリプトを作成し、関連する依存関係とともに ZIP パッケージに追加する。
ZIP パッケージを使用すると、
Automation Assembler にインポートして拡張性アクションで使用できる、アクション スクリプトと依存関係の事前構成済みテンプレートをカスタムで作成できます。
注: PowerCLI コマンドレットを依存関係として定義したり、ZIP パッケージにバンドルしたりする必要はありません。PowerCLI コマンドレットは、
Automation Assembler サービスの PowerShell ランタイムと共に事前構成されて提供されます。
また、ZIP パッケージを使用して、複数の PowerShell スクリプト ファイルを含む拡張性アクションを作成することもできます。複数のスクリプト ファイルを使用すると、拡張性アクション コードの構造を編成するのに役立ちます。
前提条件
PowerShell および PowerCLI について理解していることを確認します。Docker Hub では、PowerShell Core、PowerCLI 10、PowerNSX、および複数のコミュニティ モジュールとスクリプト サンプルを含む Docker イメージを見つけることができます。
手順
- ローカル マシンで、アクション スクリプトと依存関係用のフォルダを作成します。
たとえば、
/home/user1/zip-action です。
- 拡張子が .psm1 のメイン PowerShell スクリプトをフォルダに追加します。
次のスクリプトは、
main.psm1 というシンプルな PowerShell 関数を示しています。
function handler($context, $payload) {
Write-Host "Hello " $payload.target
return $payload
注: PowerShell 拡張性アクションの出力は、関数の本体に表示されている最後の変数に基づいています。含まれている関数内のその他の変数はすべて破棄されます。
- (オプション)
context
パラメータを使用して、メイン PowerShell スクリプトにプロキシ設定を追加します。PowerShell スクリプトでの、コンテキスト パラメータを使用したプロキシ設定の追加を参照してください。
- (オプション) PowerShell スクリプトのすべての依存関係を追加します。
注: PowerShell 依存関係スクリプトには、
.psm1 拡張子を使用する必要があります。スクリプトと、スクリプトが保存されているサブフォルダには、同じ名前を使用します。
- Linux PowerShell シェルにログインします。
注:
Automation Assembler でのアクションベースの拡張性のランタイムは、Linux ベースです。Windows 環境でコンパイルされた PowerShell 依存関係によって、生成された ZIP パッケージが使用できなくなることがあります。インストールされるすべてのサードパーティ依存関係は、PowerShell スクリプトが Photon OS で実行されるため、VMware Photon OS と互換性がある必要があります。
- /home/user1/zip-action フォルダに移動します。
- Save-Module コマンドレットを実行して、依存関係が含まれている PowerShell モジュールをダウンロードして保存します。
Save-Module -Name <module name> -Path ./
- 追加の依存関係モジュールについては、前のサブステップを繰り返します。
- 割り当てられたフォルダで、スクリプト要素と依存関係モジュール サブフォルダ(該当する場合)を選択して、ZIP パッケージに圧縮します。
注: スクリプトと依存関係モジュール サブフォルダは両方とも、ZIP パッケージのルート レベルに保存する必要があります。Linux 環境で ZIP パッケージを作成すると、パッケージのコンテンツがルート レベルに保存されないという問題が発生することがあります。この問題が発生した場合は、コマンドライン シェルで
zip -r コマンドを実行して、パッケージを作成してください。
cd your_script_and_dependencies_folder
zip -r ../your_action_ZIP.zip *
次のタスク
ZIP パッケージを使用して、拡張性アクション スクリプトを作成します。拡張性アクションの作成方法を参照してください。