创建要在 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
包含工作流运行的令牌 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 引擎会在 ZIP 软件包中查找名为 handler.py、handler.js 或 handler.ps1 的顶级文件,该文件中包含 handler
函数。函数名称与处理程序文件名之间的任何差异均须反映在条目处理程序的值中。例如,如果主处理程序的名称为 index.js,而函数名为 callMe
,则必须将该条目处理程序的值设置为 index.callMe。
在外部 IDE 中调试运行时脚本
vRealize Orchestrator 支持在外部 IDE 中调试 Python 和 Node.js 脚本。您无法在外部 IDE 中调试 PowerShell 脚本。