阿里云云产品OpenAPI分为RPC和ROA两种类型,大部分产品使用的是RPC风格。当您使用阿里云CLI调用接口时,不同风格OpenAPI的调用方式不同。
通用命令结构
阿里云CLI的通用命令结构如下:
aliyun <command> <subcommand> [options and parameters]
结构示例中command
、subcommand
、options and parameters
的详细信息如下所示:
command
:指定一个顶级命令。可指定阿里云CLI支持的云产品
ProductCode
,例如ecs、rds等。可指定阿里云CLI本身的功能命令,例如help、configure等。
subcommand
:指定要执行操作的附加子命令,即具体的某一项操作。
options and parameters
:指定用于控制阿里云CLI行为的选项或者OpenAPI参数选项,其选项值可以是数字、字符串和JSON结构字符串等。更多参数格式信息,请参见参数格式说明。
OpenAPI命令结构
判断OpenAPI风格
阿里云云产品OpenAPI分为RPC和ROA两种风格类型,大部分产品使用的是RPC风格。调用产品接口时需要判断接口类型,选择标准的命令结构发起调用。您可以通过以下特点判断OpenAPI类型。
前往目标云产品文档,单击
,在文档中查看产品OpenAPI风格。在阿里云CLI中使用
--help
选项获取产品可用OpenAPI列表,RPC风格OpenAPI显示接口简述,ROA风格OpenAPI显示访问路径PathPattern
。更多信息,请参见获取产品可用API列表。在
APIName
后使用--help
选项获取OpenAPI参数详情,除接口参数信息外,ROA风格OpenAPI会额外显示接口的请求方式Method
和访问路径PathPattern
。更多信息,请参见获取API参数详情。
一般情况下,每个产品内所有API的调用风格是统一的。每个API仅支持特定的一种风格。更多关于RPC风格和ROA风格的信息,请参见OpenAPI 风格。
RPC风格OpenAPI结构
命令结构
在阿里云CLI中,调用RPC风格API时,基本命令结构如下。
aliyun <product> <APIName> [--parameter1 value1 --parameter2 value2 ...]
ProductCode
:需要调用的云产品code。例如云服务器 ECS(Elastic Compute Service)的产品code为ecs
。APIName
:需要调用的API。例如使用云服务器 ECS的DescribeRegions
接口。--parameter
:需要传入的请求参数。可在产品API文档查看请求参数详情。可使用
--help
选项获取关于以上参数的帮助信息。详情请参见获取帮助信息。
命令示例
以调用云服务器 ECS
DescribeRegions
接口为例。有关此接口的更多信息,请参见DescribeRegions - 查询地域列表。aliyun ecs DescribeRegions
以调用云服务器 ECS
DescribeInstanceAttribute
接口为例。有关此接口的更多信息,请参见DescribeInstanceAttribute - 查询实例属性信息。aliyun rds DescribeInstanceAttribute --InstanceId 'i-uf6f5trc95ug8t33****'
ROA风格OpenAPI结构
命令结构
在阿里云CLI中,调用ROA风格OpenAPI时,基本命令结构如下。
aliyun <ProductCode> <Method> <PathPattern> --body <RequestBody>
ProductCode
:需要调用的云产品code。例如容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)的产品code为cs
。Method
:请求方式,常用请求方式有GET
、PUT
、POST
、DELETE
。根据API文档选择合适的请求方式。PathPattern
:请求路径。根据产品API文档选择正确的请求路径。RequestBody
:请求主体。根据产品API文档编辑JSON字符串,或引用JSON格式文件。可使用
--help
选项获取关于以上参数的帮助信息。详情请参见获取帮助信息。
命令示例
GET请求
以调用容器服务 Kubernetes 版DescribeClusterDetail
接口为例。有关此API的更多信息,请参见DescribeClusterDetail - 查询指定集群的信息。
aliyun cs GET /clusters/{cluster_id}
PUT请求
以调用容器服务 Kubernetes 版ModifyCluster
接口为例。有关此API的更多信息,请参见ModifyCluster - 修改集群配置。
aliyun cs PUT /api/v2/clusters/{ClusterId} --header "Content-Type=application/json" --body "$(cat input.json)"
POST请求
以调用容器服务 Kubernetes 版CreateCluster
接口为例。有关此API的更多信息,请参见CreateCluster - 创建集群。
aliyun cs POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"
DELETE请求
以调用容器服务 Kubernetes 版DeleteClusterNodepool
接口为例。有关此API的更多信息,请参见DeleteClusterNodepool - 删除节点池。
aliyun cs DELETE /clusters/{ClusterId}/nodepools/{NodepoolId}