您可以通过使用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}