本文以Python SDK為例,為您介紹如何通過服務類別目錄OpenAPI調用ListPortfolios介面查詢產品組合列表。
步驟一:查看OpenAPI文檔
閱讀API概覽,選擇可以查詢產品組合列表OpenAPI:查詢產品組合列表。根據介面文檔,瞭解調用該介面需要的參數及許可權。
步驟二:建立RAM使用者並授權
身份
您可以使用阿里雲帳號(主帳號)、RAM使用者、RAM角色調用該介面。關於各種身份的差異,請參見身份。
本樣本中,使用RAM使用者調用介面。
登入RAM存取控制,建立一個僅允許OpenAPI調用的RAM使用者,會同時產生一個AccessKey,請注意儲存。具體操作,請參見建立RAM使用者。
授權
控制台
登入RAM控制台。
在使用者頁面,找到已經建立的使用者,單擊操作列的添加許可權。

在新增授權面板,為RAM使用者添加許可權。
選擇資源範圍:通常選擇帳號層級。
選擇權限原則:在文字框中輸入關鍵字
servicecatalog進行搜尋,根據最小授權原則,選擇對應權限原則。AliyunServiceCatalogAdminFullAccess:管理服務類別目錄(ServiceCatalog)管理員側的許可權。
AliyunServiceCatalogAdminReadOnlyAccess:唯讀訪問服務類別目錄(ServiceCatalog)管理員側的許可權。
本文樣本選擇AliyunServiceCatalogAdminReadOnlyAccess系統策略。
單擊確認新增授權。
OpenAPI
授予自訂策略
調用CreatePolicy建立一個自訂策略,可以參考權限原則基本元素和權限原則樣本庫概覽。
調用AttachPolicyToUser將權限原則綁定至指定RAM使用者,注意此處
PolicyType選擇Custom。
授予系統策略
直接調用AttachPolicyToUser將權限原則綁定至指定RAM使用者,注意此處PolicyType選擇System,PolicyName選擇AliyunServiceCatalogAdminFullAccess或AliyunServiceCatalogAdminReadOnlyAccess
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
}
}