Python SDK調用示例
本文以Python SDK為例,為您介紹如何通過服務目錄OpenAPI調用ListPortfolios接口查詢產品組合列表。
步驟一:查看OpenAPI文檔
閱讀API概覽,選擇可以查詢產品組合列表OpenAPI:ListPortfolios - 查詢產品組合列表。根據接口文檔,了解調用該接口需要的參數及權限。
步驟二:創建RAM用戶并授權
身份
您可以使用阿里云賬號(主賬號)、RAM用戶、RAM角色調用該接口。關于各種身份的差異,請參見身份。
本示例中,使用RAM用戶調用接口。
登錄RAM訪問控制,創建一個僅允許OpenAPI調用的RAM用戶,會同時生成一個AccessKey,請注意保存。具體操作,請參見創建RAM用戶。
授權
訪問RAM用戶列表,單擊目標RAM用戶操作列的添加權限。
在文本框中輸入關鍵字
servicecatalog
進行搜索,根據最小授權原則,選擇對應權限策略。AliyunServiceCatalogAdminFullAccess:管理服務目錄(ServiceCatalog)管理員側的權限。
AliyunServiceCatalogAdminReadOnlyAccess:只讀訪問服務目錄(ServiceCatalog)管理員側的權限。
本文示例選擇AliyunServiceCatalogAdminReadOnlyAccess系統策略。
單擊確定,完成授權操作。
憑證
進入到對應的RAM用戶詳情頁,在認證管理頁簽下的用戶AccessKey區域,查看AccessKey。您也可以單擊創建AccessKey,創建一個新的AccessKey。具體操作,請參見創建AccessKey。
RAM用戶的AccessKey Secret只在創建時顯示,不支持查看,請注意保存。
步驟三:調用OpenAPI
本文以Python SDK調用OpenAPI為例,其他語言SDK的用法類似,更多信息請參見服務目錄SDK。您也可以根據業務的實際需要選擇其他調用方式,更多調用方法請參見調用方式。
準備Python環境
下載并安裝Python 3。
安裝完成后,在終端中輸入python --version
,查看Python版本。
配置環境變量
為避免將AccessKey硬編碼到業務代碼中帶來的安全風險,本示例采用配置環境變量的方法管理AccessKey。具體操作,請參見在Linux、macOS和Windows系統配置環境變量。
安裝依賴
pip install alibabacloud_credentials
pip install alibabacloud_servicecatalog20210901==1.1.4
pip install alibabacloud_tea_console
下載示例代碼
在OpenAPI門戶,訪問ListPortfolios調試地址。
輸入請求參數,單擊發起調用,查看調試結果是否成功。
在SDK示例頁簽下的Python頁簽,單擊下載完整工程,下載Python SDK示例代碼包。
在本地解壓示例代碼包,并進入alibabacloud_sample目錄。
運行示例代碼
執行以下命令:
python sample.py
得到如下輸出:
{
"headers": {
"date": "Fri, 14 Jul 2023 06:29:19 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "577",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "A453CDA5-B557-57A5-A05B-48F14646****",
"x-acs-trace-id": "131ed76192b0df2396bb6fb51342****",
"etag": "5+OC5aIgno6FJurD4O1s****"
},
"statusCode": 200,
"body": {
"PageNumber": 1,
"PageSize": 10,
"PortfolioDetails": [{
"CreateTime": "2023-07-14T06:11:31Z",
"Description": "",
"PortfolioArn": "acs:servicecatalog:cn-hangzhou:151266687691****:portfolio/port-bp1ac4uk39****",
"PortfolioId": "port-bp1ac4uk39****",
"PortfolioName": "test",
"ProviderName": "test"
}, {
"CreateTime": "2022-09-23T01:32:59Z",
"Description": "",
"PortfolioArn": "acs:servicecatalog:cn-hangzhou:151266687691****:portfolio/port-bp1rfbwd2f****",
"PortfolioId": "port-bp1rfbwd2f****",
"PortfolioName": "abc",
"ProviderName": "abc"
}],
"RequestId": "A453CDA5-B557-57A5-A05B-48F1464622A4",
"TotalCount": 2
}
}