阿里雲雲產品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
。更多資訊,請參見擷取產品可用OpenAPI列表。在
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。例如Elastic Compute Service (ECS)的產品code為ecs
。APIName
:需要調用的API。例如使用Elastic Compute Service的DescribeRegions
介面。--parameter
:需要傳入的請求參數。可在產品API文檔查看請求參數詳情。可使用
--help
選項擷取關於以上參數的協助資訊。詳情請參見擷取協助資訊。
命令樣本
以調用Elastic Compute Service
DescribeRegions
介面為例。有關此介面的更多資訊,請參見DescribeRegions - 查詢地區列表。aliyun ecs DescribeRegions
以調用Elastic Compute Service
DescribeInstanceAttribute
介面為例。有關此介面的更多資訊,請參見DescribeInstanceAttribute - 查詢執行個體屬性資訊。aliyun rds DescribeInstanceAttribute --InstanceId 'i-uf6f5trc95ug8t33****'
ROA風格OpenAPI結構
命令結構
在阿里雲CLI中,調用ROA風格OpenAPI時,基本命令結構如下。
aliyun <ProductCode> <Method> <PathPattern> --body <RequestBody>
ProductCode
:需要調用的雲產品code。例如Container Service for Kubernetes (ACK)的產品code為cs
。Method
:請求方式,常用請求方式有GET
、PUT
、POST
、DELETE
。根據API文檔選擇合適的請求方式。PathPattern
:請求路徑。根據產品API文檔選擇正確的請求路徑。RequestBody
:請求主體。根據產品API文檔編輯JSON字串,或引用JSON格式檔案。可使用
--help
選項擷取關於以上參數的協助資訊。詳情請參見擷取協助資訊。
命令樣本
GET請求
以調用Container Service for KubernetesDescribeClusterDetail
介面為例。有關此API的更多資訊,請參見DescribeClusterDetail - 查詢指定叢集的資訊。
aliyun cs GET /clusters/{cluster_id}
PUT請求
以調用Container Service for KubernetesModifyCluster
介面為例。有關此API的更多資訊,請參見ModifyCluster - 修改叢集配置。
aliyun cs PUT /api/v2/clusters/{ClusterId} --header "Content-Type=application/json" --body "$(cat input.json)"
POST請求
以調用Container Service for KubernetesCreateCluster
介面為例。有關此API的更多資訊,請參見CreateCluster - 建立叢集。
aliyun cs POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"
DELETE請求
以調用Container Service for KubernetesDeleteClusterNodepool
介面為例。有關此API的更多資訊,請參見DeleteClusterNodepool - 刪除節點池。
aliyun cs DELETE /clusters/{ClusterId}/nodepools/{NodepoolId}