全部產品
Search
文件中心

Alibaba Cloud CLI:命令結構

更新時間:Mar 13, 2025

本文將介紹阿里雲CLI的通用命令結構,以及在調用RPC風格或ROA風格OpenAPI時所需的特定命令結構。

通用命令結構

阿里雲CLI的通用命令結構如下:

aliyun <Command> [SubCommand] [Options and Parameters]

結構樣本中CommandSubCommandOptions and Parameters的詳細資料如下所示:

  • Command:指定一個頂級命令。

    • 可指定阿里雲CLI支援的雲產品CodeProductCode,例如ecsrds等。

    • 可指定阿里雲CLI本身的功能命令,例如configure等。

  • SubCommand:指定要執行操作的子命令,即具體的某一項操作。

    • 當頂級命令commandconfigure時,支援的子命令請參見配置命令

    • 當頂級命令command為雲產品Code,且OpenAPI風格為RPC風格時,子命令通常為可調用的OpenAPI名稱。

  • Options and Parameters:指定用於控制阿里雲CLI行為的選項或者OpenAPI參數選項,選項值可以是數字、字串和JSON結構字串等。更多參數格式資訊,請參見參數格式

判斷OpenAPI風格

阿里雲雲產品OpenAPI分為RPC和ROA兩種風格類型,大部分產品使用的是RPC風格。不同風格介面的調用方式不同,當您使用阿里雲CLI調用介面時需要判斷介面類型。您可以通過以下方式判斷OpenAPI風格:

  • 前往目標雲產品文檔,單擊開發參考 > API概覽,在文檔中查看雲產品支援的OpenAPI風格。

  • 在阿里雲CLI中,通過在雲產品CodeProductCode後使用--help選項可以擷取產品可用OpenAPI列表,不同風格介面顯示的協助資訊存在差異。

    • RPC風格OpenAPI將在協助資訊中顯示介面簡述。

    • ROA風格OpenAPI將在協助資訊中顯示訪問路徑PathPattern

    更多資訊,請參見擷取產品可用OpenAPI列表

  • 在阿里雲CLI中,通過在介面名稱APIName後使用--help選項可以擷取OpenAPI參數詳情。ROA風格OpenAPI會在協助資訊中額外顯示介面的請求方式Method和訪問路徑PathPattern。更多資訊,請參見擷取API參數詳情

一般情況下,每個產品內所有介面的調用風格是統一的,且每個介面僅支援特定的一種風格。更多關於RPC風格和ROA風格的資訊,請參見OpenAPI 風格

RPC風格命令結構

結構說明

在阿里雲CLI中,調用RPC風格的OpenAPI時,其命令結構如下。

aliyun <ProductCode> <APIName> [Parameters]

樣本中ProductCodeAPINameParameters的詳細資料如下所示:

  • ProductCode:雲產品Code。例如Elastic Compute Service (ECS)的雲產品Code為ecs

  • APIName:介面名稱。例如使用Elastic Compute ServiceDescribeRegions介面。

  • Parameters:請求參數。您可以在協助資訊或官網文檔中查看可用請求參數,以選項形式指定參數。

  • 可使用--help選項擷取關於以上參數的協助資訊。詳情請參見擷取協助資訊

命令樣本

  • 以下樣本為您展示如何調用Elastic Compute ServiceDescribeRegions介面,查詢可用地區資訊列表。更多資訊,請參見DescribeRegions - 查詢地區列表

    aliyun ecs DescribeRegions
  • 以下樣本為您展示如何調用Elastic Compute ServiceDescribeInstanceAttribute介面,查詢指定ECS執行個體的屬性資訊。更多資訊,請參見DescribeInstanceAttribute - 查詢執行個體屬性資訊

    aliyun rds DescribeInstanceAttribute --InstanceId 'i-uf6f5trc95ug8t33****'

ROA風格命令結構

命令結構

在阿里雲CLI中,調用ROA風格OpenAPI時,基本命令結構如下。

 aliyun <ProductCode> <Method> <PathPattern> [RequestBody] [Parameters]

樣本中ProductCodeMethodPathPatternRequestBodyParameters的詳細資料如下所示:

  • ProductCode:雲產品Code。例如Container Service for Kubernetes (ACK)的雲產品Code為cs

  • Method:請求方式。您可以根據協助資訊或官網文檔選擇正確的請求方式。常用請求方式有GETPUTPOSTDELETE

  • PathPattern:請求路徑。您可以根據協助資訊或官網文檔選擇正確的請求路徑。

  • RequestBody:請求主體。您可以參考說明資訊或官網文檔,使用以下選項指定請求主體。

    • 使用--body選項指定字串或變數作為請求主體。

    • 使用--body-file選項指定檔案路徑,將目標檔案作為請求主體。

    具體操作請參見命令選項

  • Parameters:請求參數。您可以在協助資訊或官網文檔中查看可用請求參數,以選項形式指定參數。

  • 可使用--help選項擷取關於以上參數的協助資訊。詳情請參見擷取協助資訊

命令樣本

GET請求

以下樣本為您展示如何調用Container Service for KubernetesDescribeClustersForRegion介面,查詢杭州地區下的ACK專有叢集。更多資訊,請參見DescribeClustersForRegion - 查詢指定地區的叢集列表

aliyun cs GET /regions/cn-hangzhou/clusters --cluster_type Kubernetes

PUT請求

以下樣本為您展示如何調用Container Service for KubernetesModifyCluster介面,修改叢集綁定的EIP執行個體。更多資訊,請參見ModifyCluster - 修改叢集配置

aliyun cs PUT /api/v2/clusters/cb95aa626a47740afbf6aa099b65**** --body "{\"api_server_eip\":true,\"api_server_eip_id\":\"eip-wz9fnasl6dsfhmvci****\"}"

POST請求

以下樣本為您展示如何調用Container Service for KubernetesCreateCluster介面,根據create.json檔案建立ACK專有叢集。更多資訊,請參見CreateCluster - 建立叢集

aliyun cs POST /clusters --body-file create.json

JSON檔案樣本

{
    "cluster_type":"Kubernetes",
    "name":"webService",
    "region_id":"cn-beijing",
    "disable_rollback":true,
    "timeout_mins":60,
    "kubernetes_version":"1.14.8-aliyun.1",
    "snat_entry":true,
    "endpoint_public_access":true,
    "ssh_flags":true,
    "cloud_monitor_flags":true,
    "deletion_protection":false,
    "node_cidr_mask":"26",
    "proxy_mode":"ipvs",
    "tags":[],
    "addons":[{"name":"flannel"},{"name":"arms-prometheus"},{"name":"flexvolume"},{"name":"alicloud-disk-controller"},{"name":"logtail-ds","config":"{"IngressDashboardEnabled":"false"}"},{"name":"ack-node-problem-detector","config":"{"sls_project_name":""}"},{"name":"nginx-ingress-controller","config":"{"IngressSlbNetworkType":"internet"}"}],
    "os_type":"Linux",
    "platform":"CentOS",
    "node_port_range":"30000-32767",
    "key_pair":"sian-sshkey",
    "cpu_policy":"none",
    "master_count":3,
    "master_vswitch_ids":["vsw-2zete8s4qocqg0mf6****","vsw-2zete8s4qocqg0mf6****","vsw-2zete8s4qocqg0mf6****"],
    "master_instance_types":["ecs.n4.large","ecs.n4.large","ecs.n4.large"],
    "master_system_disk_category":"cloud_ssd",
    "master_system_disk_size":120,
    "runtime":{"name":"docker","version":"18.09.2"},
    "worker_instance_types":["ecs.i1.xlarge"],
    "num_of_nodes":1,
    "worker_system_disk_category":"cloud_efficiency",
    "worker_system_disk_size":120,
    "vpcid":"vpc-2zecuu62b9zw7a7q****",
    "worker_vswitch_ids":["vsw-2zete8s4qocqg0mf6****"],
    "container_cidr":"172.20.0.0/16",
    "service_cidr":"172.21.0.0/20"
}

DELETE請求

以下樣本為您展示如何調用Container Service for KubernetesDeleteClusterNodepool介面,刪除叢集中的指定節點池。更多資訊,請參見DeleteClusterNodepool - 刪除節點池

aliyun cs DELETE /clusters/cb95aa626a47740afbf6aa099b65****/nodepools/np30db56bcac7843dca90b999c8928****