建立用於 vRealize Orchestrator 的指令碼時,您必須確認指令碼具有正確的結構和格式。

支援的執行階段

對於開發 vRealize Orchestrator 動作和工作流程,您可以使用下列執行階段:

  • Python 3.7
  • Node.js 14
  • PowerCLI 11/Powershell 6.2
  • PowerCLI 12.3.0/Powershell 7.1
    備註: PowerCLI 執行階段包括 PowerShell 和下列模組:VMware.PowerCLI、PowerNSX、PowervRA。

您可以將任何自訂來源代碼新增至新的執行階段,但若要接受內容和輸入,以及傳回來自 vRealize Orchestrator 引擎的結果及將結果傳回此引擎,您必須遵循正確的函數格式。

指令碼處理建議

對於較簡單的指令碼工作,您可以將可編寫指令碼的工作元素新增至工作流程架構。您可以將 vRealize Orchestrator 動作用於較複雜的指令碼工作。

使用動作提供兩個具體的優點:

  • 可以在工作流程以外單獨建立、更新、匯入和匯出動作。
  • 動作是獨立物件,可在其本身的環境中執行和接受偵錯,進而產生更順暢的開發程序。請參閱執行和偵錯動作

指令碼函數需求

指令碼函數的預設名稱為 handler。此函數接受兩個引數、內容和輸入。內容是包含系統資訊的對應物件。例如,vroURL 可以包含您想要呼叫的 vRealize Orchestrator 執行個體的 URL,而 executionId 包含工作流程執行的 Token 識別碼。

輸入是包含提供給動作的所有輸入的對應物件。例如,如果您在動作中定義了名為 myInput 的輸入,則可以從輸入引數 (例如 inputs.myInputinputs["myInput"]) 存取此輸入,具體取決於您的執行階段。從函數傳回的任何內容都是動作的結果。因此,動作的傳回類型必須對應指令碼在 vRealize Orchestrator 中傳回的內容類型。如果傳回基本數字,則動作傳回類型必須為數字類型。如果傳回字串,則動作傳回類型必須為字串類型。如果傳回複雜物件,則傳回類型必須對應 PropertiesComposite Type。這些相同的原則也適用於陣列。

Python、Node.js 和 PowerShell 執行階段支援的輸入和輸出參數類型:

  • String
  • Number
  • Boolean
  • Date
  • Properties
  • Composite Type

定義項目處理常式

依預設,項目處理常式的值為 handler.handler。該值表示 vRealize Orchestrator 引擎會在 ZIP 套件中尋找名為 handler.pyhandler.jshandler.ps1 的頂層檔案,其中包含名為 handler 的函數。與函數和處理常式檔案名稱的任何差異都必須反映在項目處理常式的值中。例如,如果主要處理常式名為 index.js,而函數名為 callMe,則必須將項目處理常式的值設定為 index.callMe

在外部 IDE 中偵錯執行階段指令碼

vRealize Orchestrator 支援在外部 IDE 中偵錯 Python 和 Node.js 指令碼。您無法在外部 IDE 中偵錯 PowerShell 指令碼。