您可以通過使用Alibaba Cloud CLI調用阿里云ECI API,管理您的彈性容器實例(Elastic Container Instances,ECI)。

教程介紹

以下步驟及示例均已在 Alibaba Cloud Shell 中集成。您可以在 Cloud Shell 中打開,快速體驗通過Alibaba Cloud CLI管理您的ECI實例,包括:創建ECI容器組、獲取ECI容器組信息、刪除ECI容器組等操作。

前提條件

在使用Alibaba Cloud CLI調用ECI API之前,您需要確保:
  • 已經開通ECI服務,并擁有訪問您相應云資源的權限。
    說明 彈性容器實例(ECI)默認使用AliyunECIContainerGroupRole角色來訪問您在其他云產品中的資源。
  • 在當前ECI可用Region擁有VPC網絡,且在ECI可用區內有VSwitch。
  • 在當前ECI可用Region擁有安全組。

相關API

您可以通過使用Alibaba Cloud CLI調用以下API,對ECI實例進行管理。
API名稱 說明
CreateContainerGroup 創建一個容器組。
DescribeContainerGroups 批量獲取容器組信息。
DescribeContainerLog 獲取容器組日志信息。
DeleteContainerGroup 刪除一個容器組。
ExecContainerCommand 在容器內部執行命令。
說明 執行aliyun eci help命令,獲取通過阿里云命令行工具CLI管理彈性容器實例的可用方法。

典型案例

在創建ECI實例之前,您需要先獲取VSwitchId和SecurityGroupId。

  1. 查詢已創建的交換機的列表。
    aliyun vpc DescribeVSwitches | jq .VSwitches.VSwitch | jq .[] | jq .ZoneId
    說明 若上述命令輸出為空,表示該Region不存在VPC網絡。您需要登錄VPC控制臺創建相關VPC。若交換機都不在ECI地域和可用區內,您還需要創建VSwitch
  2. 假設第一個交換機符合要求,執行以下命令,獲取VSwitchId。
    VSwitchId=`aliyun vpc DescribeVSwitches | jq .VSwitches.VSwitch | jq .[0] | jq -r .VSwitchId`
    說明 選擇當前Region下,ECI可用區范圍內的交換機。
  3. 查詢已創建的安全組的基本信息。
    aliyun ecs DescribeSecurityGroups | jq .SecurityGroups.SecurityGroup | jq .[] | jq .SecurityGroupId
    說明 若上述命令輸出為空,您需要登錄云服務器控制臺創建安全組。
  4. 執行以下命令,獲取SecurityGroupId。
    SecurityGroupId=`aliyun ecs DescribeSecurityGroups | jq .SecurityGroups.SecurityGroup | jq .[0] | jq -r .SecurityGroupId`
  5. 使用Alibaba Cloud CLI管理彈性容器ECI實例。
    示例如下:
    • 創建容器組。
      aliyun eci CreateContainerGroup --SecurityGroupId ${SecurityGroupId} --VSwitchId ${VSwitchId} --ContainerGroupName test-eci --Container.1.Image nginx --Container.1.Name nginx --Container.1.Cpu 1 --Container.1.Memory 2
      類似如下輸出:
      {"ContainerGroupId":"eci-bp19vpbluci6jm3wblj2","RequestId":"F1F69DA4-4952-441D-A164-7C8E3EDF0DC0"}
    • 批量獲取容器組信息。
      aliyun eci DescribeContainerGroups --ContainerGroupName test-eci | jq
    • 獲取容器組日志信息。
      ContainerGroupId=`aliyun eci DescribeContainerGroups --ContainerGroupName test-eci | jq .ContainerGroups | jq .[] | jq -r .ContainerGroupId`
      aliyun eci DescribeContainerLog --ContainerGroupId ${ContainerGroupId} --ContainerName nginx
    • 刪除容器組。
      aliyun eci DeleteContainerGroup --ContainerGroupId ${ContainerGroupId}