全部產品
Search
文件中心

:ALIYUN::ECI::ContainerGroup

更新時間:Apr 19, 2025

ALIYUN::ECI::ContainerGroup類型用於建立一個容器組。

文法

{
  "Type": "ALIYUN::ECI::ContainerGroup",
  "Properties": {
    "SecurityContextSysctl": List,
    "Memory": Number,
    "InitContainer": List,
    "Cpu": Number,
    "EipInstanceId": String,
    "ContainerGroupName": String,
    "Container": List,
    "ImageSnapshotId": String,
    "DnsConfig": Map,
    "AutoMatchImageCache": Boolean,
    "Ipv6AddressCount": Integer,
    "ImageRegistryCredential": List,
    "SpotPriceLimit": Number,
    "InstanceType": String,
    "SpotStrategy": String,
    "ActiveDeadlineSeconds": Integer,
    "HostAliase": List,
    "ZoneId": String,
    "TerminationGracePeriodSeconds": Integer,
    "VSwitchId": String,
    "SecurityGroupId": String,
    "SlsEnable": Boolean,
    "RestartPolicy": String,
    "RamRoleName": String,
    "Volume": List,
    "AcrRegistryInfo": List,
    "Tag": List,
    "ResourceGroupId": String
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

EipInstanceId

String

否

否

Elastic IP Address ID。

無

Container

List

是

是

容器組中包含的容器。

更多資訊,請參見Container屬性。

DnsConfig

Map

否

是

DNS配置。

更多資訊,請參見DnsConfig屬性。

InitContainer

List

否

是

初始化容器列表。

更多資訊,請參見InitContainer屬性。

SecurityGroupId

String

否

否

指定新建立執行個體所屬於的安全性群組ID。

同一個安全性群組內的執行個體之間可以互相訪問。

ContainerGroupName

String

是

否

容器組名稱。

無

ZoneId

String

否

否

執行個體所屬的可用性區域ID。

預設值:空(表示由系統選擇)。

Volume

List

否

是

資料卷列表。

最多可以指定20個資料卷。

更多資訊,請參見Volume屬性。

HostAliase

List

否

否

自訂pod內一個容器的hostname映射。

更多資訊,請參見HostAliase屬性。

RestartPolicy

String

否

是

執行個體重啟策略。

取值:

  • Always(預設值)

  • OnFailure

  • Never

ResourceGroupId

String

否

是

資源群組ID。

無

Tag

List

否

是

索引值對形式的容器組標籤列表。

每個容器組最多定義20個標籤。索引值均為字串。

更多資訊,請參見Tag屬性。

VSwitchId

String

否

否

交換器ID。當前ECI執行個體均為專用網路執行個體。

交換器網段內IP的個數決定了該交換器最大可建立的ECI執行個體數,請提前規劃交換器網段設定。

ImageRegistryCredential

List

否

是

登入容器映像倉庫的資訊,包括伺服器位址、使用者名稱和密碼。

更多資訊,請參見ImageRegistryCredential屬性。

Memory

Number

否

是

記憶體大小。

無

SlsEnable

Boolean

否

否

是否開啟使用者日誌收集。

取值:

  • true:開啟。

  • false(預設值):不開啟。

SecurityContextSysctl

List

否

否

執行個體啟動並執行安全上下文。

更多資訊,請參見SecurityContext屬性。

Cpu

Number

否

是

CPU大小。

無

ImageSnapshotId

String

否

否

鏡像緩衝ID或快照ID。

無

SpotPriceLimit

Number

否

否

執行個體的每小時最高價格。

最大支援3位小數。

SpotStrategy取值為SpotWithPriceLimit時,該參數生效。

AutoMatchImageCache

Boolean

否

否

自動匹配鏡像緩衝。

無

SpotStrategy

String

否

否

執行個體的搶佔策略。

取值:

  • NoSpot(預設值):正常隨用隨付執行個體。

  • SpotWithPriceLimit:設定上限價格的搶佔式執行個體。

  • SpotAsPriceGo:系統自動出價,跟隨當前市場實際價格。

TerminationGracePeriodSeconds

Integer

否

否

給程式預留的最後緩衝時間,用於處理關閉之前的操作。

單位:秒。

ActiveDeadlineSeconds

Integer

否

否

有效期間限。

單位:秒。

Ipv6AddressCount

Integer

否

否

Ipv6地址數量。

無

RamRoleName

String

否

否

執行個體RAM角色名稱。

ECI與ECS共用執行個體RAM角色。

AcrRegistryInfo

List

否

否

企業版訪問憑證配置資訊。

更多資訊,請參見AcrRegistryInfo屬性。

InstanceType

String

否

否

執行個體規格。

無

Container文法

"Container": [
  {
    "EnvironmentVar": List,
    "Tty": Boolean,
    "SecurityContext": Map,
    "Name": String,
    "ImagePullPolicy": String,
    "Image": String,
    "Stdin": boolean,
    "WorkingDir": String,
    "LivenessProbe": Map,
    "Cpu": Number,
    "Command": List,
    "Memory": Number,
    "ReadinessProbe": Map,
    "VolumeMount": List,
    "Port": List,
    "Arg": List,
    "StdinOnce": Boolean
  }
]

Container屬性

屬性名稱

類型

必須

允許更新

描述

約束

EnvironmentVar

List

否

否

容器中的環境變數。

每個環境變數都是索引值對,鍵和值都是字串。鍵表示變數的名稱,值表示變數的值。

最多支援100個環境變數。

更多資訊,請參見EnvironmentVar屬性。

Tty

Boolean

否

否

是否為此容器分配TTY。

取值:

  • true:為此容器分配TTY。

    當值為true時,則stdin也為true。

  • false:不為此容器分配TTY。

SecurityContext

Map

否

否

容器組的安全上下文。

無

Name

String

是

否

容器名。

無

ImagePullPolicy

String

否

否

鏡像拉取策略。

無

Image

String

是

否

鏡像。

無

Stdin

Boolean

否

否

是否在此容器運行時分配標準輸入的緩衝。

取值:

  • true:在此容器運行時分配標準輸入的緩衝。

  • false:不在此容器運行時分配標準輸入的緩衝。

WorkingDir

String

否

否

容器的工作目錄。

無

LivenessProbe

Map

否

否

容器存活探針。

更多資訊,請參見LivenessProbe屬性。

Cpu

Number

否

否

分配給容器的CPU數量。

無

Command

List

否

否

要發送到容器以啟動並執行命令列表。

最多可以指定一個命令。每個字串的最大長度為256個字元。

Memory

Number

否

否

分配給容器的記憶體。

單位:GiB。

ReadinessProbe

Map

否

否

容器就緒探針。

更多資訊,請參見ReadinessProbe屬性。

VolumeMount

List

否

否

掛載到容器上的Volume的詳情。

最多支援16個。

更多資訊,請參見VolumeMount屬性。

Port

List

否

否

開放連接埠和協議。

最多可以設定100個連接埠。取值:

  • TCP

  • UDP

更多資訊,請參見Port屬性。

Arg

List

否

否

傳遞給命令的參數。

參數為String類型。最多支援10個參數。

StdinOnce

Boolean

否

否

由用戶端串連時首次開啟標準輸入通道後,中斷連線後是否關閉該通道。

取值:

  • true:關閉通道。

  • false:開啟通道。

LivenessProbe文法

"LivenessProbe": {
  "TcpSocket.Port": Integer,
  "HttpGet.Scheme": String,
  "HttpGet.Port": Integer,
  "FailureThreshold": Integer,
  "InitialDelaySeconds": Integer,
  "TimeoutSeconds": Integer,
  "SuccessThreshold": Integer,
  "Exec.Command": List,
  "PeriodSeconds": Integer,
  "HttpGet.Path": String
}

LivenessProbe屬性

屬性名稱

類型

必須

允許更新

描述

約束

TcpSocket.Port

Integer

否

否

系統向其中發送TCP通訊端請求以執行檢查的連接埠。

無

HttpGet.Scheme

String

否

否

用於串連主機的協議。

取值:

  • HTTP

  • HTTPS

HttpGet.Port

Integer

否

否

系統向其中發送HTTP GET請求以執行檢查的連接埠。

無

FailureThreshold

Integer

否

否

探測器認定檢查失敗的檢查次數閾值。

必須是連續失敗

預設值:3。

InitialDelaySeconds

Integer

否

否

在啟動探測之前容器啟動後的時間。

單位:秒。

TimeoutSeconds

Integer

否

否

探測器逾時的秒數。

最小值:1。

預設值:1。

SuccessThreshold

Integer

否

否

探測器檢查失敗後重新認定檢查成功的檢查次數閾值。

取值:1。

預設值:1。

Exec.Command

List

否

否

探測命令。

無

PeriodSeconds

Integer

否

否

探測周期。

單位:秒。

最小值:1。

預設值:10。

HttpGet.Path

String

否

否

系統發送HTTP GET請求以執行檢查的路徑。

無

DnsConfig文法

"DnsConfig": {
  "NameServer": List,
  "Search": List,
  "Option": List
}

DnsConfig屬性

屬性名稱

類型

必須

允許更新

描述

約束

NameServer

List

否

否

DNS伺服器的IP地址清單。

無

Search

List

否

否

DNS搜尋域的列表。

無

Option

List

否

否

選項列表。

每個選項都包含一個名稱和一個值。選項的值可選。

更多資訊,請參見Option屬性。

InitContainer文法

"InitContainer": [
  {
    "EnvironmentVar": List,
    "SecurityContext": Map,
    "Name": String,
    "Image": String,
    "Arg": List,
    "WorkingDir": String,
    "Port": List,
    "Command": List,
    "Memory": Number,
    "ImagePullPolicy": String,
    "VolumeMount": List,
    "Cpu": Number
  }
]

InitContainer屬性

屬性名稱

類型

必須

允許更新

描述

約束

EnvironmentVar

List

否

否

容器中的環境變數。

每個環境變數都是索引值對,鍵和值都是字串。鍵表示變數的名稱,值表示變數的值。

最多支援100個環境變數。

取值:status.podIP。

SecurityContext

Map

否

否

容器組的安全上下文。

無

Name

String

否

否

容器名。

無

Image

String

否

否

容器鏡像。

無

Arg

List

否

否

傳遞給命令的參數。

參數為String類型。最多支援10個參數。

WorkingDir

String

否

否

容器的工作目錄。

無

Port

List

否

否

開放連接埠和協議。

最多可以設定100個連接埠。取值:

  • TCP

  • UDP

Command

List

否

否

要發送到容器以啟動並執行命令列表。

最多可以指定一個命令。每個字串的最大長度為256個字元。

Memory

Number

否

否

分配給容器的記憶體。

單位:GB。

ImagePullPolicy

String

否

否

鏡像拉取策略。

無

VolumeMount

List

否

否

掛載到容器上的Volume的詳情。

最多支援16個Volume。

Cpu

Number

否

否

分配給容器的CPU數量。

無

Volume文法

"Volume": [
  {
    "NFSVolume.Path": String,
    "Name": String,
    "EmptyDirVolume.Medium": String,
    "NFSVolume.Server": String,
    "NFSVolume.ReadOnly": Boolean,
    "ConfigFileVolume.ConfigFileToPath": List,
    "Type": String,
    "FlexVolume.Options": Map,
    "FlexVolume.Driver": String,
    "FlexVolume.FsType": String
  }
]

Volume屬性

屬性名稱

類型

必須

允許更新

描述

約束

NFSVolume.Path

String

否

否

NFSVolume的路徑。

無

Name

String

是

否

Volume名。

無

EmptyDirVolume.Medium

String

否

否

儲存介質。

預設情況下,使用節點上的檔案系統。

取值:Memory。

如果值為Memory,則EmptyDirVolume卷儲存在記憶體中。

NFSVolume.Server

String

否

否

NFS伺服器的IP地址。

無

NFSVolume.ReadOnly

Boolean

否

否

NFS卷唯讀屬性。

預設值:false。

ConfigFileVolume.ConfigFileToPath

List

否

否

設定檔路徑。

更多資訊,請參見ConfigFileVolume.ConfigFileToPath屬性。

Type

String

是

否

Volume的類型。

取值:

  • EmptyDirVolume

  • NFSVolume

  • ConfigFileVolume

FlexVolume.Options

Map

否

否

FlexVolume對象選項列表。

為KV形式,採用JSON傳遞。

例如:通過FlexVolume掛載雲端硬碟時,Options的格式為{"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}。

FlexVolume.Driver

String

否

否

用於FlexVolume的驅動程式名稱。

無

FlexVolume.FsType

String

否

否

掛載的檔案系統類型

無

HostAliase文法

"HostAliase": [
  {
    "Ip": String,
    "Hostname": List
  }
]

HostAliase屬性

屬性名稱

類型

必須

允許更新

描述

約束

Ip

String

否

否

IP地址。

無

Hostname

List

否

否

主機名稱。

無

ImageRegistryCredential文法

"ImageRegistryCredential": [
  {
    "UserName": String,
    "Password": String,
    "Server": String
  }
]

ImageRegistryCredential屬性

屬性名稱

類型

必須

允許更新

描述

約束

UserName

String

是

否

用於登入鏡像倉庫的使用者名稱。

無

Password

String

是

否

用於登入鏡像倉庫的密碼。

無

Server

String

是

否

鏡像倉庫的IP地址。

此地址不包含協議首碼。

例如:http://或https://。

EnvironmentVar文法

"EnvironmentVar": {
  "Key": String,
  "Value": String,
  "FieldRef.FieldPath": String
}

EnvironmentVar屬性

屬性名稱

類型

必須

允許更新

描述

約束

Key

String

否

否

變數的名稱。

長度為1~128個字元,不能以數字開頭,可包含數字、英文字母和底線(_)。

Value

String

否

否

變數的值。

長度為0~256個字元。

FieldRef.FieldPath

String

否

否

對另一個變數的引用。

目前只支援status.podIP。

SecurityContext文法

"SecurityContext": {
  "Capability.Add": List,
  "RunAsUser": Integer,
  "ReadOnlyRootFilesystem": Boolen
}

SecurityContext屬性

屬性名稱

類型

必須

允許更新

描述

約束

Capability.Add

List

否

否

可添加到容器的Capability。

取值:["NET_ADMIN"]。

RunAsUser

Integer

否

否

使用者ID。

無

ReadOnlyRootFilesystem

Boolean

否

否

唯讀根檔案系統。

預設值:true。

VolumeMount文法

"VolumeMount": [
  {
    "Name": String,
    "ReadOnly": Boolean,
    "MountPath": String,
    "MountPropagation": String,
    "SubPath": String
  }
]

VolumeMount屬性

屬性名稱

類型

必須

允許更新

描述

約束

Name

String

否

否

Volume的名稱。

名稱與Volume部分中為name參數指定的值相同。

ReadOnly

Boolean

否

否

唯讀屬性。

預設值:false。

MountPath

String

否

否

安裝路徑。

目標目錄中的資料被掛載卷中的資料覆蓋。

MountPropagation

String

否

否

資料卷的掛載傳播設定。

掛載傳播允許將Container掛載的卷共用到同一Pod中的其他Container,甚至可以共用到同一節點上的其他Pod。可取值:

  • None:該卷不感知任何後續在此卷或其子目錄上執行的掛載操作。

  • HostToCotainer:該卷將會感知到後續在此卷或其子目錄上的掛載操作。

  • Bidirectional:和HostToCotainer類似,能感知掛載操作。另外,該卷將被傳播回主機和使用同一卷的所有Pod的所有容器。

SubPath

String

否

否

資料卷下的子目錄。

方便Pod將同一個Volume下不同目錄掛載到容器不同目錄。

Port文法

"Port": [
  {
    "Port": Interger,
    "Protocol": String
  }
]

Port屬性

屬性名稱

類型

必須

允許更新

描述

約束

Port

Integer

否

否

連接埠號碼。

取值範圍:1~65,535。

Protocol

String

否

否

連接埠使用的協議。

取值:

  • TCP

  • UDP

ConfigFileVolume.ConfigFileToPath文法

"ConfigFileVolume.ConfigFileToPath": [
  {
    "Content": String,
    "Path": String
  }
]

ConfigFileVolume.ConfigFileToPath屬性

屬性名稱

類型

必須

允許更新

描述

約束

Content

String

否

否

設定檔的內容。

最大為32KB。

Path

String

是

否

設定檔中的相對路徑。

您可以指定一個目錄相對於另一個目錄的位置。

SecurityContextSysctl文法

"SecurityContextSysctl": [
  {
    "Value": String,
    "Name": String
  }
] 

SecurityContextSysctl屬性

屬性名稱

類型

必須

允許更新

描述

約束

Value

String

否

否

執行個體啟動並執行安全內容相關的變數值。

無

Name

String

否

否

執行個體啟動並執行安全上下文系統名稱。

取值:

  • kernel.msgmax

  • kernel.shm_rmid_forced

ReadinessProbe文法

"ReadinessProbe": {
  "TimeoutSeconds": Integer,
  "InitialDelaySeconds": Integer,
  "Exec.Command": List,
  "PeriodSeconds": Integer,
  "HttpGet.Port": Integer,
  "TcpSocket.Port": Integer,
  "FailureThreshold": Integer,
  "HttpGet.Scheme": String,
  "HttpGet.Path": String,
  "SuccessThreshold": Integer
} 

ReadinessProbe屬性

屬性名稱

類型

必須

允許更新

描述

約束

FailureThreshold

Integer

否

否

從上次檢查成功後認定檢查失敗的檢查次數閾值。

必須是連續失敗。

預設值:3。

HttpGet.Scheme

String

否

否

GET請求協議。

取值:

  • HTTP

  • HTTPS

HttpGet.Path

String

否

否

HttpGet檢測的路徑。

無

Exec.Command

List

否

否

容器內檢測的命令。

無

TcpSocket.Port

Integer

否

否

TcpSocket檢測的連接埠。

無

PeriodSeconds

Integer

否

否

檢查執行的周期。

預設值:10。

最小值:1。

單位:秒。

TimeoutSeconds

Integer

否

否

檢查逾時的時間。

預設值:10。

最小值:1。

單位:秒。

InitialDelaySeconds

Integer

否

否

檢查開始執行的時間,以容器啟動完成為起點計算。

無

SuccessThreshold

Integer

否

否

從上次檢查失敗後重新認定檢查成功的檢查次數閾值。

必須是連續成功。

預設值:1。

HttpGet.Port

Integer

否

否

HttpGet檢測的連接埠號碼。

無

Option文法

"Option": [
  {
    "Name": String,
    "Value": String
  }
] 

Option屬性

屬性名稱

類型

必須

允許更新

描述

約束

Name

String

否

否

對象名稱。

無

Value

String

否

否

對象值。

無

Tag文法

"Tag": [
  {
    "Key": String,
    "Value": String
  }
]

Tag屬性

屬性名稱

類型

必須

允許更新

描述

約束

Key

String

是

否

標籤鍵。

無

Value

String

否

否

標籤值。

無

AcrRegistryInfo文法

"AcrRegistryInfo": [
  {
    "RegionId": String,
    "InstanceName": String,
    "Domain": List,
    "InstanceId": String
  }
]

AcrRegistryInfo屬性

屬性名稱

類型

必須

允許更新

描述

約束

RegionId

String

否

否

所屬地區ID。

預設為本地地區。

InstanceName

String

否

否

執行個體名稱。

無

Domain

List

否

否

網域名稱。

預設為執行個體的所有網域名稱。

InstanceId

String

是

否

執行個體ID。

無

傳回值

Fn::GetAtt

  • ContainerGroupId:容器組ID。

  • ContainerGroupName:容器組的名稱。

  • SecurityGroupId:安全性群組ID。

  • Ipv6Address:Ipv6地址。

  • InternetIp:公網IP。

  • RegionId:執行個體所屬地區。

  • IntranetIp:內網IP。

  • ZoneId:可用性區域。

  • VSwitchId:交換器ID。

  • EniInstanceId:彈性網卡ID。

樣本

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test ECI ContainerGroup
Parameters:
  VSwitch:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    Label:
      zh-cn: 網路交換器ID
      en: VSwitch ID
  SecurityGroup:
    Type: String
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    Label:
      zh-cn: 安全性群組ID
      en: Security Group ID
Resources:
  ContainerGroup:
    Type: ALIYUN::ECI::ContainerGroup
    Properties:
      Container:
        - Name: mytest
          Image: busybox
          Cpu: 2
          Memory: 4
          Port:
            - Port: 8080
              Protocol: TCP
            - Port: 8888
              Protocol: TCP
      SecurityGroupId:
        Ref: SecurityGroup
      ContainerGroupName: mytest
      VSwitchId:
        Ref: VSwitch
      RestartPolicy: Always
      SlsEnable: false
      Cpu: 2
      Memory: 4
Outputs: {}

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test ECI ContainerGroup",
  "Parameters": {
    "VSwitch": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "Type": "String",
      "Label": {
        "zh-cn": "網路交換器ID",
        "en": "VSwitch ID"
      }
    },
    "SecurityGroup": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
      "Label": {
        "zh-cn": "安全性群組ID",
        "en": "Security Group ID"
      }
    }
  },
  "Resources": {
    "ContainerGroup": {
      "Type": "ALIYUN::ECI::ContainerGroup",
      "Properties": {
        "Container": [
          {
            "Name": "mytest",
            "Image": "busybox",
            "Cpu": 2,
            "Memory": 4,
            "Port": [
              {
                "Port": 8080,
                "Protocol": "TCP"
              },
              {
                "Port": 8888,
                "Protocol": "TCP"
              }
            ]
          }
        ],
        "SecurityGroupId": {
          "Ref": "SecurityGroup"
        },
        "ContainerGroupName": "mytest",
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "RestartPolicy": "Always",
        "SlsEnable": false,
        "Cpu": 2,
        "Memory": 4
      }
    }
  },
  "Outputs": {
  }
}