调用CreateContainerGroup创建一个容器组。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateContainerGroup

系统规定参数。取值:CreateContainerGroup

Container.N.Image String registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest

容器镜像。

Container.N.Name String nigix

容器镜像名称。

ContainerGroupName String nigix-test

容器组名称。

RegionId String cn-hangzhou

实例所属的地域 ID

SecurityGroupId String sg-uf66jeqopgqa9hdn2atd

指定新创建实例所属于的安全组代码,同一个安全组内的实例之间可以互相访问。

VSwitchId String vsw-uf6h3rbwbm90urjwavskd

指定虚拟交换机 ID。当前 ECI 实例均为 VPC 实例。

交换机网段内IP的个数决定了该交换机最大可创建的 ECI 实例数,请务必提前规划好网段设置。

ZoneId String cn-hangzhou-b

实例所属的可用区编号,空表示由系统选择,默认值:空。

RestartPolicy String Always

实例重启策略,默认:Always

Tag.N.Key String version

标签键。

Tag.N.Value String 3

标签值。

ImageRegistryCredential.N.Server String registry-vpc.cn-shanghai.aliyuncs.com

镜像仓库注册地址。

ImageRegistryCredential.N.UserName String yourusername

镜像仓库用户名。

ImageRegistryCredential.N.Password String yourpaasword

镜像仓库密码。

Container.N.Cpu Float 0.25

CPU,单位:核。

Container.N.Memory Float 0.5

内存,单位:GiB。

Container.N.WorkingDir String /usr/local/

容器工作目录。

Container.N.ImagePullPolicy String Always

镜像拉取策略。

Container.N.Command.N RepeatList sleep

容器启动命令,上限20,单个String,256个字符。

Container.N.Arg.N RepeatList 100

容器启动参数,上限10。

Container.N.VolumeMount.N.MountPath String /pod/data

挂载目录,容器的挂载目录下的内容被Volume的内容直接覆盖,所以要慎用。

Container.N.VolumeMount.N.ReadOnly Boolean false

数据卷只读权限,默认值为 False。

Container.N.VolumeMount.N.Name String default-volume1

数据卷名称,同 Volume 中的 Name。

Container.N.VolumeMount.N.SubPath String data2/

数据卷子路径。

Container.N.Port.N.Protocol String TCP

TCP/UDP。

Container.N.Port.N.Port Integer 80

端口号 1-65535。

Container.N.EnvironmentVar.N.Key String PATH

变量名,长度 [1,128],取值范围:[0-9a-zA-Z]以及下划线 ‘_’,不能以数字开头。

Container.N.EnvironmentVar.N.Value String /usr/local/bin

变量值,长度[0,256],取值范围不限。

Container.N.EnvironmentVar.N.FieldRef.FieldPath String status.podIP

变量值引用,目前只支持”status.podIP”。

Container.N.ReadinessProbe.HttpGet.Path String /healthz

HttpGet检测的路径。

Container.N.ReadinessProbe.HttpGet.Port Integer 8080

HttpGet检测的端口号。

Container.N.ReadinessProbe.HttpGet.Scheme String HTTP

HTTP/HTTPS。

Container.N.ReadinessProbe.InitialDelaySeconds Integer 3

检查开始执行的时间,以容器启动完成为起点计算。

Container.N.ReadinessProbe.PeriodSeconds Integer 3

检查执行的周期,默认为10秒,最小为1秒。

Container.N.ReadinessProbe.SuccessThreshold Integer 1

从上次检查失败后重新认定检查成功的检查次数阈值(必须是连续成功),默认为1。

Container.N.ReadinessProbe.FailureThreshold Integer 3

从上次检查成功后认定检查失败的检查次数阈值(必须是连续失败),默认为3。

Container.N.ReadinessProbe.TimeoutSeconds Integer 1

检查超时的时间,默认为1秒,最小为1秒。

Container.N.ReadinessProbe.Exec.Command.N RepeatList cat /tmp/healthy

容器内检测的命令。

Container.N.LivenessProbe.HttpGet.Path String /healthyz

HttpGet检测的路径。

Container.N.LivenessProbe.HttpGet.Port Integer 8888

HttpGet检测的端口号。

Container.N.LivenessProbe.HttpGet.Scheme String HTTP

HTTP/HTTPS。

Container.N.LivenessProbe.InitialDelaySeconds Integer 5

检查开始执行的时间,以容器启动完成为起点计算。

Container.N.LivenessProbe.PeriodSeconds Integer 5

检查执行的周期,默认为10秒,最小为1秒。

Container.N.LivenessProbe.SuccessThreshold Integer 1

从上次检查失败后重新认定检查成功的检查次数阈值(必须是连续成功),默认为1。当前必须为1。

Container.N.LivenessProbe.FailureThreshold Integer 3

从上次检查成功后认定检查失败的检查次数阈值(必须是连续失败),默认为3。

Container.N.LivenessProbe.TimeoutSeconds Integer 1

检查超时的时间,默认为1秒,最小为1秒。

Container.N.LivenessProbe.Exec.Command.N RepeatList cat /tmp/healthy

容器内检测的命令。

Container.N.SecurityContext.Capability.Add.N RepeatList NET_ADMIN

枚举值,目前仅支持:NET_ADMIN。

Container.N.SecurityContext.ReadOnlyRootFilesystem Boolean true

目前仅支持:true。

Container.N.SecurityContext.RunAsUser Long 1000

容器以用户ID 1000运行。

Container.N.ReadinessProbe.TcpSocket.Port Integer 8000

TcpSocket检测的端口。

Container.N.LivenessProbe.TcpSocket.Port Integer 8000

TcpSocket检测的端口。

Container.N.Stdin Boolean false

此容器是否应在容器运行时为标准输入分配缓冲区。如果未设置,则容器中标准输入的读取值将导致EOF。默认为false。

Container.N.StdinOnce Boolean false

当标准输入为 true 时,标准输入流将在多个附加会话中保持开启状态。如果StdinOnce设为 true,标准输入在容器开启时被打开,在首个客户端附加到标准输入之前都为空,然后会一直保持开启状态,接收数据,直到客户端连接断开,此时标准输入被关闭,在容器重启前一直保持关闭状态。

Container.N.Tty Boolean false

是否开启交互,默认为false,例如Command为 [“/bin/bash”] 时,需要设置为true。

Container.N.Gpu Integer 1

图形化处理器。

Volume.N.Name String default-volume1

数据卷名称。

Volume.N.NFSVolume.Server String 3f9cd4a596-naw76.cn-shanghai.nas.aliyuncs.com

NFS 服务器地址。

Volume.N.NFSVolume.Path String /share

NFS 数据卷路径。

Volume.N.NFSVolume.ReadOnly Boolean false

默认值为 false。

Volume.N.ConfigFileVolume.ConfigFileToPath.N.Content String bGl1bWk=

配置文件内容 (32KB)。

Volume.N.ConfigFileVolume.ConfigFileToPath.N.Path String liu/name

相对文件路径。

Volume.N.Type String ConfigFileVolume

数据卷类型。

Volume.N.EmptyDirVolume.Medium String memory

EmptyDirVolume的存储媒介,默认为空,使用node文件系统;支持 memory,表示使用内存。

Volume.N.DiskVolume.DiskId String d-xx

DiskVolume的ID。

Volume.N.DiskVolume.FsType String xfs

DiskVolume的系统类型。

Volume.N.DiskVolume.DiskSize Integer 15

DiskVolume的大小 GiB。

Volume.N.FlexVolume.Driver String flexvolume

用于FlexVolume的驱动程序名称。

Volume.N.FlexVolume.FsType String ext4

挂载的文件系统类型,默认取决于FlexVolume的script。

Volume.N.FlexVolume.Options String {}

FlexVolume对象选项列表。为 KV形式,采用JSON传递。

EipInstanceId String eip-xxx

弹性公网IP ID。

InitContainer.N.Name String test-init

Init容器名称。

InitContainer.N.Image String nginx

镜像。

InitContainer.N.Cpu Float 0.5

CPU大小。

InitContainer.N.Memory Float 1.0

内存大小。

InitContainer.N.WorkingDir String /usr/local

工作目录。

InitContainer.N.ImagePullPolicy String Always

镜像重启策略。

InitContainer.N.Command.N RepeatList sleep

Init容器启动指令。

InitContainer.N.Arg.N RepeatList 10

Init容器启动参数。

InitContainer.N.VolumeMount.N.MountPath String /usr/share/

挂载目录,容器的挂载目录下的内容被volume的内容直接覆盖,所以要慎用。

InitContainer.N.VolumeMount.N.ReadOnly Boolean false

默认为false。

InitContainer.N.VolumeMount.N.Name String test-empty

挂载数据卷的名称。

InitContainer.N.VolumeMount.N.SubPath String /usr/sub/

数据卷下的子目录,方便Pod将同一个Volume下不同目录挂载到容器不同目录。

InitContainer.N.Port.N.Protocol String TCP

TCP/UDP。

InitContainer.N.Port.N.Port Integer 8888

端口号 1-65535。

InitContainer.N.EnvironmentVar.N.Key String Path

变量名,长度[1,128],取值范围:[0-9a-zA-Z]以及下划线 ‘_’,不能以数字开头

InitContainer.N.EnvironmentVar.N.Value String /usr/bin/

变量值,长度【0,256】,取值范围不限。

InitContainer.N.EnvironmentVar.N.FieldRef.FieldPath String status.podIP

变量值引用,目前只支持”status.podIP”。

InitContainer.N.SecurityContext.Capability.Add.N RepeatList NET_ADMIN

枚举值,目前仅支持:NET_ADMIN。

InitContainer.N.SecurityContext.ReadOnlyRootFilesystem Boolean true

目前仅支持:true。

InitContainer.N.SecurityContext.RunAsUser Long 587

以用户ID运行。

InitContainer.N.Gpu Integer 1

图形化处理器。

DnsConfig.NameServer.N RepeatList x.x.x.x

DNS 服务器 IP 地址列表。

DnsConfig.Search.N RepeatList svc.local.kubenetes

DNS 搜索域列表。

DnsConfig.Option.N.Name String name

对象的Name。

DnsConfig.Option.N.Value String value

对象的Value。

Cpu Float 1.0

CPU 大小。

Memory Float 2.0

内存大小。

ResourceGroupId String rg-xxx

资源组ID。

DnsPolicy String uuid

DNS策略。

ClientToken String 123e4567-xxxx-12d3-xxxx-426655440000

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。只支持ASCII字符,且不能超过64个字符。更多详情,请参阅如何保证幂等性

HostAliase.N.Ip String 1.1.1.1

添加IP。

HostAliase.N.Hostname.N RepeatList hehe.com

添加主机名。

InstanceType String ecs.c5.xlarge

实例规格。

SecurityContext.Sysctl.N.Name String kernel.msgmax

实例运行的安全上下文系统名称。

SecurityContext.Sysctl.N.Value String 65536

实例运行的安全上下文的变量值。

SlsEnable Boolean false

开启用户日志收集,默认为False

ImageSnapshotId String imc-2zebxkiifuyzzlhl199h

镜像缓存ID。

RamRoleName String test-xxx

实例RAM角色名称,ECI与ECS共用实例RAM角色,使用方式请参阅通过API使用实例RAM角色

NtpServer.N RepeatList ntp.cloud.aliyuncs.com

Ntp服务器。

TerminationGracePeriodSeconds Long 60

给程序留的最后缓冲时间,来处理关闭之前的操作。

AutoMatchImageCache Boolean false

自动匹配镜像缓存。

Ipv6AddressCount Integer 128

Ipv6地址数。

ActiveDeadlineSeconds Long 1000

有效期限秒。

返回数据

名称 类型 示例值 描述
RequestId String 28B583A8-313D-4383-8EA9-B5A9F7E07817

请求ID,唯一标识。

ContainerGroupId String eci-uf6fonnghi50u374a0i4

容器组 ID。

示例

请求示例

http(s)://eci.aliyuncs.com/?Action=CreateContainerGroup
&Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest
&Container.1.1ame=nigix
&ContainerGroupName=nigix-test
&RegionId=cn-hangzhou
&SecurityGroupId=sg-uf66jeqopgqa9hdn2atd
&VSwitchId=vsw-uf6h3rbwbm90urjwavskd
&<公共请求参数>

正常返回示例

XML 格式

<ContainerGroupId>eci-uf6fonnghi50u374a0i4</ContainerGroupId>
<RequestId>28B583A8-313D-4383-8EA9-B5A9F7E07817</RequestId>

JSON 格式

{  
   "ContainerGroupId":"eci-uf6fonnghi50u374a0i4",
   "RequestId":"28B583A8-313D-4383-8EA9-B5A9F7E07817"
}

常见请求参数参考样例


ImageRegistryCredential.N.Server=registry-vpc.cn-shanghai.aliyuncs.com
ImageRegistryCredential.N.UserName=yourusername
ImageRegistryCredential.N.Password=yourpaasword

Volume.N.Name=default-volume1
Volume.N.Type=ConfigFileVolume
Volume.N.ConfigFileVolume.ConfigFileToPath.1.Content=bGl1bWk=
Volume.N.ConfigFileVolume.ConfigFileToPath.1.Path=liu/name
Volume.N.ConfigFileVolume.ConfigFileToPath.2.Content=YWxpeXVu
Volume.N.ConfigFileVolume.ConfigFileToPath.2.Path=liu/com

Volume.N.Name=default-volume1
Volume.N.Type=NFSVolume
Volume.N.NFSVolume.Path=/share
Volume.N.NFSVolume.Server=3f9cd4a596-naw76.cn-shanghai.nas.aliyuncs.com
Volume.N.NFSVolume.ReadOnly=False

Volume.N.Name: default-volume
Volume.N.Type: EmptyDirVolume

Volume.N.Name=my-static-diskvolume
Volume.N.Type=DiskVolume
Volume.N.DiskVolume.FsType=ext4
Volume.N.DiskVolume.DiskId=d-2ze4rk800li49moq****
说明 DiskId为预先创建好的云盘实例ID,必须跟创建的ECI实例在相同的可用区,支持所有类型云盘,详情参考:云盘
说明 如果云盘未格式化,则系统会自动格式化为FsType指定的类型,目前仅支持ext3、ext4、xfs。

Volume.N.Name=my-dynamic-diskvolume
Volume.N.Type=DiskVolume
Volume.N.DiskVolume.FsType=ext4
Volume.N.DiskVolume.DiskSize=20
说明 DiskSize表示需要动态创建云盘的大小,取值范围为:20~500,单位为GiB
说明DiskId为空,DiskSize字段为必填,当2个字段都有值,则DiskSize将被忽略

注意事项

1. 所有的volume挂载到容器目录后,都会覆盖原有的内容,尤其是EmptyDirVolume会直接清空原内容,所以VolumeMount参数的挂载目录一定要慎重。

2. 一块云盘同一时刻只能挂载在一个ECI实例中,目前暂不支持在一个ECI实例中挂载多块云盘(ImgeCache快照盘除外)。

3. 动态创建的云盘随ECI实例一起创建,一起销毁。


Tag.N1.Key=version
Tag.N1.Value=v3
Tag.N2.Key=app
Tag.N2.Value=nginx

DnsConfig.NameServer.N=x.x.x.x
DnsConfig.Search.N=svc.local.kubenetes
DnsConfig.Option.N.Name=name
DnsConfig.Option.N.Value=vale

HostAliase.N.Hostname.1=hehe.com
HostAliase.N.Hostname.2=haha.com
HostAliase.N.Ip=42.101.1.10

SecurityContext.Sysctl.1.Name=kernel.shm_rmid_forced,
SecurityContext.Sysctl.1.Value='0',
SecurityContext.Sysctl.2.Name=kernel.msgmax,
SecurityContext.Sysctl.2.Value='65536',

#base params
Container.1.Image=registry.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest
Container.1.Name=nginx-liu
Container.1.Cpu=1
Container.1.Memory=2
Container.1.ImagePullPolicy=Always
Container.1.WorkingDir=/usr/local/share/nginx
#commands and args
Container.1.Command.1=bash
Container.1.Arg.1=-c
Container.1.Arg.2= date; sleep 100
#EnvironmentVar
Container.1.EnvironmentVar.1.Key=PATH
Container.1.EnvironmentVar.1.Value=/usr/local/bin
Container.1.EnvironmentVar.2.Key=ECI_IP
Container.1.EnvironmentVar.2.FieldRef.FieldPath=status.podIP
#stdin
Container.1.Stdin=True
Container.1.StdinOnce=False
Container.1.Tty=True
#port
Container.1.Port.1.Protocol=TCP
Container.1.Port.1.Port=80
#VolumeMounts
Container.1.VolumeMount.1.Name=default-volume1
Container.1.VolumeMount.1.MountPath=/pod/data
Container.1.VolumeMount.1.ReadOnly=False
Container.1.VolumeMount.2.Name=default-volume2
Container.1.VolumeMount.2.SubPath=data2/
Container.1.VolumeMount.2.MountPath=/pod/data2/
Container.1.VolumeMount.2.ReadOnly=False
#ReadinessProbe
Container.1.ReadinessProbe.TcpSocket.Port=80
Container.1.ReadinessProbe.InitialDelaySeconds=10
Container.1.ReadinessProbe.PeriodSeconds=10
Container.1.ReadinessProbe.FailureThreshold=3
Container.1.ReadinessProbe.SuccessThreshold=3
Container.1.ReadinessProbe.TimeoutSeconds=5
#LivenessProbe
Container.1.LivenessProbe.Exec.Command.1=/bin/sh
Container.1.LivenessProbe.Exec.Command.2=cat
Container.1.LivenessProbe.Exec.Command.3=/etc/nginx/nginx.conf
Container.1.LivenessProbe.InitialDelaySeconds=10
Container.1.LivenessProbe.PeriodSeconds=10
Container.1.LivenessProbe.FailureThreshold=3
Container.1.LivenessProbe.SuccessThreshold=1
Container.1.LivenessProbe.TimeoutSeconds=5
#SecurityContext
Container.1.SecurityContext.Capability.Add.1=NET_ADMIN
Container.1.SecurityContext.ReadOnlyRootFilesystem=True
Container.1.SecurityContext.RunAsUse=1337
#ntpServer
NtpServer.1=ntp.cloud.aliyuncs.com
NtpServer.2=ntp7.cloud.aliyuncs.com

错误码

HttpCode 错误码 错误信息 描述
400 Account.Arrearage Your account has an outstanding payment. 账号已经欠费。
400 DryRunOperation Request validation has been passed with DryRun flag set. 此次DryRun预检请求合格。
400 InvalidParameter.CPU.Memory The specified cpu and memory are not allowed cpu,mem不符合规格
400 InvalidParameter.DuplicatedName The container group include containers with duplicate names. 容器组内有重复名字的容器。
403 OperationDenied.NoStock Sales of this resource are temporarily suspended in the specified region; please try again later. 库存不足,请尝试其它系列或者其它可用区/地域的实例。
403 OperationDenied.VswZoneMisMatch The specified VSwitchId is not in the specified Zone. 指定的交换机不在可用区
403 QuotaExceeded %s quota exceeded. 用户允许创建的实例已经超过限制
403 Zone.NotOnSale The specified zone is not available for purchase. 创建实例的可用区已经关闭售卖,请更换其他可用区。或者无法在该可用区使用指定 VPC 的虚拟交换机。
403 Forbidden.RiskControl This operation has been identified as an abnormal operation and cannot be processed. 此操作已被确定为一个操作异常,无法处理。
403 Forbidden.SubUser The specified action is not available for you. 当前用户无法执行该操作
403 Forbidden.OnlyForInvitedTest Eci create action is only open to invited users during public beta. Eci公测阶段只对受邀的用户开放。
400 InvalidParameter.DuplicatedVolumeName The container group includes volumes with duplicate names. 容器组内有重复名字的数据卷。
400 IncorrectStatus %s 指定的实例状态不正确。
403 OperationDenied.SecurityGroupMisMatch The specified VSwitchId and SecurityGroupId are not in the same VPC. 指定的交换机和安全组不在同一个VPC下
403 InvalidVSwitchId.IpNotEnough The specified VSwitch does not have enough IP addresses. 交换机没有足够ip地址
403 Forbidden.UserBussinessStatus This operation is not allowed, because you have overdue bills. Pay the overdue bill and try again. 用户处于欠费状态不允许创建,请充值后再尝试。
403 Forbidden.UserNotRealNameAuthentication This operation is not allowed, because you have not passed the real-name verification. 操作被禁止,因为用户还未进行实名认证。
400 ServiceNotEnabled %s 该次请求所依赖的服务没有开通,请开通后再试。
404 ImageSnapshot.NotFound The specified snapshot does not exist. 镜像缓存,快照不存在。
400 ImageSnapshot.IncorrectStatus %s 用于镜像缓存的快照状态不正确。
400 ImageSnapshot.NotSupport %s 基于数据盘快照的镜像缓存功能暂未全网开放,如有需要请联系我们。
404 InvalidDiskId.NotFound The specified disk does not exist. 指定的云盘不存在。
400 DiskVolume.NotSupport The disk volume is not supported. 云盘卷暂不支持,如有需要请联系我们。
403 InvalidUser.PassRoleForbidden The RAM user is not authorized to assume a RAM role. 子账号用户没有权限使用RAM实例角色
400 RamRole.NotSupport The RAM role is not supported. ram实例角色不支持
403 NoPermission The RAM role does not belong to ECS. RAM role不属于ecs
400 DiskNumber.LimitExceed The maximum number of disks in an instance is exceeded. 实例下云盘数目超过限制。
400 InvalidPaymentMethod.InsufficientBalance No payment method is specified for your account. We recommend that you add a payment method or add funds to the prepayment balance. 您的账户暂无有效支付方式,请添加支付方式或保持预付款余额充足。
400 DiskVolume.NotInSameZone The instance to be created and the disk are not in the same zone. 即将创建的实例和云盘不在同一可用区。

访问错误中心查看更多错误码。