本文以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
}
}