文档

Python SDK调用示例

更新时间:

本文以Python SDK为例,为您介绍如何通过OpenAPI调用ListStacks接口查询资源栈列表。

步骤一:查看OpenAPI文档

阅读API概览,选择可以查询资源栈列表的OpenAPI:ListStacks - 查询资源栈列表。根据接口文档,了解调用该接口需要的参数及权限。

步骤二:创建RAM用户并授权

身份

您可以使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异请参见身份、凭据、授权

本案例中,我们使用RAM用户进行接口调用。登录RAM访问控制,创建一个仅允许API调用的RAM用户,记录AK信息,具体操作,请参见创建RAM用户

凭证

在创建RAM用户时会默认生成一个AccessKey,可直接使用。您也可以进入到对应的RAM用户详情页,在认证管理页签下的用户AccessKey区域,单击创建AccessKey,创建一个新的AccessKey。具体操作,请参见创建AccessKey

重要

RAM用户的AccessKey Secret只在创建时显示,不支持查看,请注意保存。

授权

  1. 访问RAM用户列表,单击目标RAM用户操作列的添加权限

  2. 选择权限区块中输入关键字ros进行搜索,根据最小授权原则,选择对应权限策略。

    • AliyunROSFullAccess:管理资源编排服务(ROS)的权限。

    • AliyunROSReadOnlyAccess:只读访问资源编排服务(ROS)的权限。

    说明

    如果系统策略不能满足您的需求,您可以创建自定义策略。更多信息,请参见创建自定义权限策略授权信息

    本文示例选择AliyunROSReadOnlyAccess系统策略。

  3. 单击确定,完成授权操作。

步骤三:调用OpenAPI

本文以Python SDK调用OpenAPI,其他语言SDK的用法类似。更多信息,请参见ROS SDK。您也可根据业务的实际需要选择其他调用方式,更多调用方法请参见调用方式

准备Python环境

下载并安装Python 3

安装完成后,在终端中输入python --version,查看Python版本。

配置环境变量

为避免将AccessKey硬编码到业务代码中带来的安全风险,本示例采用配置环境变量的方法管理AccessKey。

  • Linux和macOS系统

    将以下命令中的<access_key_id><access_key_secret>替换为您自己的AccessKey ID和AccessKey Secret,输入到终端执行。

  • export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
  • Windows系统

    新建系统环境变量,变量名分别为ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,变量值分别为RAM用户的AccessKey ID和AccessKey Secret,然后重启Windows系统。

安装依赖

pip install alibabacloud_credentials
pip install alibabacloud_ros20190910==3.2.28
pip install alibabacloud_tea_console

下载示例代码

  1. 在OpenAPI门户,访问ListStacks调试地址

  2. 输入请求参数RegionIdcn-hangzhou,其他参数均可不填写,直接单击发起调用

  3. SDK示例页签下的Python页签,单击下载完整工程,下载Python SDK示例代码包。

  4. 在本地解压示例代码包,并进入alibabacloud_sample目录。

运行示例代码

执行以下命令:

python sample.py

得到如下输出结果:

{
  "TotalCount": 1,
  "PageSize": 10,
  "RequestId": "692E6895-AEFC-550C-B968-AE929BB68891",
  "PageNumber": 1,
  "Stacks": [
    {
      "Status": "IMPORT_CREATE_COMPLETE",
      "OperationInfo": {},
      "ResourceGroupId": "rg-acfmz7hmshz****",
      "ServiceManaged": false,
      "StatusReason": "Stack IMPORT_CREATE completed successfully",
      "CreateTime": "2023-06-26T09:40:26",
      "StackType": "ROS",
      "RegionId": "cn-hangzhou",
      "DisableRollback": false,
      "StackName": "TemplateScratch-ResourceImport-wffTp****",
      "Tags": [
        {
          "Value": "rg-acfmz7hmshzcriy",
          "Key": "acs:rm:rgId"
        }
      ],
      "TimeoutInMinutes": 60,
      "StackId": "814d2113-348c-41f1-adb2-85d3aadf****"
    }
  ]
}

  • 本页导读 (1)
文档反馈