vRealize Orchestrator で使用するスクリプトを作成する際には、スクリプトの構造とフォーマットが正しいことを確認する必要があります。
サポート対象のランタイム
vRealize Orchestrator アクションとワークフローを開発する場合は、次のランタイムを使用できます。
- Python 3.7
- Node.js 14
- Node.js 18
- PowerCLI 11/Powershell 6.2
- PowerCLI 12.3.0/Powershell 7.1
注: PowerCLI ランタイムには PowerShell と次のモジュールが含まれています:VMware.PowerCLI、PowerNSX、PowervRA。
新しいランタイムには任意のカスタム ソース コードを追加できますが、コンテキストと入力を受け入れ、結果を vRealize Orchestrator エンジンとの間で受け渡しするには、適切な関数フォーマットを使用する必要があります。
スクリプト作成の推奨事項
スクリプト作成タスクを簡素化するために、[スクリプト可能タスク] 要素をワークフローのスキーマに追加できます。vRealize Orchestrator アクションを使用して、より複雑なスクリプト作成タスクを実行できます。
アクションを使用することによるメリットは次の 2 つです。
- ワークフローとは別にアクションを作成、更新、インポート、およびエクスポートできます。
- アクションはスタンドアローンのオブジェクトで、独自の環境で実行およびデバッグが可能なため、開発プロセスをスムーズに進めることができます。アクションの実行およびデバッグを参照してください。
スクリプト関数の要件
スクリプト関数のデフォルト名は handler です。関数は、コンテキストと入力の 2 つの引数を受け入れます。コンテキストは、システム情報を含むマップ オブジェクトです。たとえば、vroURL
には、呼び出す vRealize Orchestrator インスタンスの URL を含めることができます。また、executionId
には、ワークフロー実行のトークン ID を含めます。
入力は、アクションに提供されるすべての入力を含むマップ オブジェクトです。たとえば、myInput
というアクションで入力を定義した場合、ランタイムに応じて、inputs.myInput
や inputs["myInput"]
のような入力引数からアクセスできます。関数から返るものはすべて、アクションの結果です。したがって、アクションの戻り値のタイプは、vRealize Orchestrator でスクリプトが返すコンテンツのタイプに対応している必要があります。プリミティブ型の数値を返す場合は、アクションの戻り値のタイプを数値タイプにする必要があります。文字列を返す場合、アクションの戻り値のタイプは文字列タイプにする必要があります。複雑なオブジェクトを返す場合は、Properties
または Composite Type
のいずれかに戻り値のタイプをマッピングする必要があります。アレイにも同様の原則が適用されます。
Python、Node.js、PowerShell ランタイムでサポートされている入力および出力パラメータ タイプ:
String
Number
Boolean
Date
Properties
Composite Type
エントリ ハンドラの定義
デフォルトでは、エントリ ハンドラの値は handler.handler
です。この値は、vRealize Orchestrator エンジンが、handler
という関数を含む handler.py、handler.js または handler.ps1 という ZIP パッケージの最上位レベルのファイルを検索することを意味します。関数とハンドラ ファイルの名前の違いは、エントリ ハンドラの値に反映させる必要があります。たとえば、メイン ハンドラが index.js で、関数が callMe
という名前だった場合、エントリ ハンドラの値は index.callMe に設定する必要があります。
外部 IDE でのランタイム スクリプトのデバッグ
vRealize Orchestrator は、外部 IDE での Python および Node.js スクリプトのデバッグをサポートしています。外部 IDE で PowerShell スクリプトをデバッグすることはできません。