全部產品
Search
文件中心

Resource Orchestration Service:Python SDK調用樣本

更新時間:Jun 19, 2024

本文以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:管理Resource Orchestration Service服務(ROS)的許可權。

    • AliyunROSReadOnlyAccess:唯讀訪問Resource Orchestration Service服務(ROS)的許可權。

    說明

    如果系統策略不能滿足您的需求,您可以建立自訂策略。更多資訊,請參見建立自訂權限原則授權資訊

    本文樣本選擇AliyunROSReadOnlyAccess系統策略。

  3. 單擊確定,完成授權操作。

步驟三:調用OpenAPI

本文以Python SDK調用OpenAPI,其他語言SDK的用法類似。更多資訊,請參見ROS SDK。您也可根據業務的實際需要選擇其他調用方式,更多調用方法請參見調用方式

準備Python環境

下載並安裝Python 3

安裝完成後,在終端中輸入python --version,查看Python版本。

配置環境變數

為避免將AccessKey寫入程式碼到業務代碼中帶來的安全風險,本樣本採用配置環境變數的方法管理AccessKey。具體操作,請參見在Linux、macOS和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****"
    }
  ]
}