创建使用 Python 调用 vRealize Automation 项目 API 的示例脚本。

前提条件

确认您已安装 Python 3 和 PIP 软件包安装程序。请参见 Python 下载页面Python 软件包索引

过程

  1. 在本地计算机上,打开命令行 shell。
  2. 创建 vro-python-vra 文件夹。
    mkdir vro-python-vra
  3. 导航到 vro-python-vra 文件夹。
    cd vro-python-vra
  4. 创建名为 handler.py 的 Python 脚本。
    touch handler.py
    handler.py 脚本必须定义一个接受以下两个参数的函数:vRealize Orchestrator 工作流运行的上下文和绑定的 vRealize Orchestrator 输入。
    def handler(context, inputs):
        print('Hello, your inputs were ' + inputs)
        return None
    注: 使用标准日志记录库时,在使用脚本的操作中记录的所有内容也会显示在工作流日志中。脚本的输入和返回内容必须在 vRealize Orchestrator 客户端中具有已配置的相应输入参数和返回类型。例如,脚本中的 vRAUrl 输入必须在 vRealize Orchestrator 客户端中具有名为 vRAUrl 的相应输入参数。同样,如果脚本返回字符串值,则在 vRealize Orchestrator 客户端中配置的返回类型也必须是字符串类型。如果操作返回复合类型对象,则可以使用 PropertiesComposite Type 返回类型。
  5. 安装 Python 请求模块。
    重要事项: 第三方依赖关系模块必须安装在主 vro-python-vra 脚本文件夹中的根级别文件夹中。在此用例中,您需要为请求模块创建一个 lib 文件夹。
    1. 创建 lib 文件夹。
      mkdir lib
    2. 安装请求模块。
      pip3 install requests -t lib/
  6. 将请求模块添加到 handler.py 脚本中。
    import requests
     
    def handler(context, inputs):
        print('Hello, your inputs were ' + inputs)
        return None
  7. 创建对 vRealize Automation 项目 API 的 GET 请求。
    token = ''
    vRAUrl = ''
    r = requests.get(vRAUrl + '/iaas/api/projects', headers={'Authorization': 'Bearer ' + token})
     
     
    print('Got response ' + r.text)
  8. 定义 tokenvRAUrl 值。
    1. 使用 vRealize Automation 身份验证服务 API 检索访问令牌。请参见获取 vRealize Automation API 的访问令牌
    2. 对于 vRAUrl 值,请定义脚本,使其使用具有相同名称的 vRealize Orchestrator 输入参数。
      vRAUrl = inputs["vRAUrl"]
    3. 将新值添加到 handler.py 文件中。
      import requests
       
      def handler(context, inputs):
          token = 'ACCESS_TOKEN'
          vRAUrl = inputs["vRAUrl"]
       
          r = requests.get(vRAUrl + '/iaas/api/projects', headers={'Authorization': 'Bearer ' + token})
       
          print('Got response ' + r.text)
       
          return r.json()
      注: 由于来自 vRealize Automation 项目 API 的响应为 JSON 格式,因此请对 vRealize Orchestrator 操作使用 PropertiesComposite Type 返回类型。
  9. 创建一个 ZIP 包,其中包含 handler.py 文件和请求模块的 lib 文件夹。
    zip -r --exclude=*.zip -X vro-python-vra.zip .

后续步骤

将 PowerShell 脚本导入到 vRealize Orchestrator 操作。请参见在 vRealize Orchestrator 客户端中创建操作