Créez un groupe de conteneurs Elastic Container Instance (ECI).
Syntaxe
{
"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
}
}
Propriétés
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
EipInstanceId |
String |
Non |
Non |
L'ID de l'instance EIP. |
Aucune |
|
Container |
List |
Oui |
Oui |
Les conteneurs du groupe de conteneurs. |
|
|
DnsConfig |
Map |
Non |
Oui |
La configuration DNS. |
|
|
InitContainer |
List |
Non |
Oui |
La liste des conteneurs d'initialisation. |
|
|
SecurityGroupId |
String |
Non |
Non |
L'ID du groupe de sécurité. |
Les instances appartenant au même groupe de sécurité peuvent communiquer entre elles. |
|
ContainerGroupName |
String |
Oui |
Non |
Le nom du groupe de conteneurs. |
Aucune |
|
ZoneId |
String |
Non |
Non |
L'ID de la zone où se trouve l'instance. |
Par défaut : aucune. Le système sélectionne automatiquement une zone. |
|
Volume |
List |
Non |
Oui |
La liste des volumes. |
Maximum : 20. |
|
HostAliase |
List |
Non |
Non |
Les mappages de noms d'hôte personnalisés pour un conteneur dans le pod. |
|
|
RestartPolicy |
String |
Non |
Oui |
La politique de redémarrage de l'instance. |
Valeurs valides :
|
|
ResourceGroupId |
String |
Non |
Oui |
L'ID du groupe de ressources. |
Aucune |
|
Tag |
List |
Non |
Oui |
Les tags du groupe de conteneurs sous forme de paires clé-valeur. |
Maximum : 20. La clé et la valeur sont des chaînes de caractères. |
|
VSwitchId |
String |
Non |
Non |
L'ID du vSwitch. Toutes les instances ECI sont des instances VPC. |
Le nombre d'adresses IP disponibles dans le bloc CIDR du vSwitch détermine le nombre maximal d'instances ECI. Planifiez le bloc CIDR à l'avance. |
|
ImageRegistryCredential |
List |
Non |
Oui |
Les identifiants pour le registre d'images de conteneur, incluant l'adresse du serveur, le nom d'utilisateur et le mot de passe. |
|
|
Memory |
Number |
Non |
Oui |
La taille de la mémoire. |
Aucune |
|
SlsEnable |
Boolean |
Non |
Non |
Indique si la collecte des journaux utilisateur est activée. |
Valeurs valides :
|
|
SecurityContextSysctl |
List |
Non |
Non |
Le contexte de sécurité dans lequel l'instance s'exécute. |
|
|
Cpu |
Number |
Non |
Oui |
Le nombre de vCPU. |
Aucune |
|
ImageSnapshotId |
String |
Non |
Non |
L'ID du cache d'image ou du snapshot. |
Aucune |
|
SpotPriceLimit |
Number |
Non |
Non |
Le prix horaire maximal pour l'instance. |
Trois décimales maximum sont prises en charge. Ce paramètre n'est effectif que lorsque SpotStrategy est défini sur SpotWithPriceLimit. |
|
AutoMatchImageCache |
Boolean |
Non |
Non |
Indique s'il faut faire correspondre automatiquement un cache d'image. |
Aucune |
|
SpotStrategy |
String |
Non |
Non |
La politique de préemption pour l'instance. |
Valeurs valides :
|
|
TerminationGracePeriodSeconds |
Integer |
Non |
Non |
La période de grâce avant l'arrêt du conteneur. |
Unité : secondes. |
|
ActiveDeadlineSeconds |
Integer |
Non |
Non |
Le délai d'expiration actif pour le groupe de conteneurs. |
Unité : secondes. |
|
Ipv6AddressCount |
Integer |
Non |
Non |
Le nombre d'adresses IPv6. |
Aucune |
|
RamRoleName |
String |
Non |
Non |
Le nom du rôle RAM de l'instance. |
Les instances ECI et ECS partagent le même rôle RAM d'instance. |
|
AcrRegistryInfo |
List |
Non |
Non |
Les identifiants d'accès pour une instance Container Registry Enterprise Edition. |
|
|
InstanceType |
String |
Non |
Non |
Le type d'instance. |
Aucune |
Syntaxe de 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
}
]
Propriétés du conteneur
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
EnvironmentVar |
List |
Non |
Non |
Les variables d'environnement du conteneur. |
Chaque variable est une paire clé-valeur de chaînes de caractères. Maximum : 100. |
|
Tty |
Boolean |
Non |
Non |
Indique s'il faut allouer un TTY pour ce conteneur. |
Valeurs valides :
|
|
SecurityContext |
Map |
Non |
Non |
Le contexte de sécurité du groupe de conteneurs. |
Aucune |
|
Name |
String |
Oui |
Non |
Le nom du conteneur. |
Aucune |
|
ImagePullPolicy |
String |
Non |
Non |
La politique de récupération d'images. |
Aucune |
|
Image |
String |
Oui |
Non |
L'image. |
Aucune |
|
Stdin |
Boolean |
Non |
Non |
Indique s'il faut allouer un tampon pour l'entrée standard. |
Valeurs valides :
|
|
WorkingDir |
String |
Non |
Non |
Le répertoire de travail du conteneur. |
Aucune |
|
LivenessProbe |
Map |
Non |
Non |
La sonde de vivacité (liveness) du conteneur. |
|
|
Cpu |
Number |
Non |
Non |
Le nombre de CPU alloués au conteneur. |
Aucune |
|
Command |
List |
Non |
Non |
Les commandes à exécuter dans le conteneur. |
Maximum : 1 commande. Longueur maximale de la chaîne : 256 caractères. |
|
Memory |
Number |
Non |
Non |
La mémoire allouée au conteneur. |
Unité : GiB. |
|
ReadinessProbe |
Map |
Non |
Non |
La sonde de préparation (readiness) du conteneur. |
|
|
VolumeMount |
List |
Non |
Non |
Les points de montage des volumes pour le conteneur. |
Maximum : 16. |
|
Port |
List |
Non |
Non |
Les ports et protocoles ouverts. |
Maximum : 100 ports. Protocoles valides :
|
|
Arg |
List |
Non |
Non |
Les arguments transmis à la commande. |
Type String. Maximum : 10. |
|
StdinOnce |
Boolean |
Non |
Non |
Indique s'il faut fermer l'entrée standard après la déconnexion du client. |
Valeurs valides :
|
Syntaxe 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
}
Propriétés LivenessProbe
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
TcpSocket.Port |
Integer |
Non |
Non |
Le port pour la vérification du socket TCP. |
Aucune |
|
HttpGet.Scheme |
String |
Non |
Non |
Le protocole utilisé pour se connecter à l'hôte. |
Valeurs valides :
|
|
HttpGet.Port |
Integer |
Non |
Non |
Le port pour la vérification HTTP GET. |
Aucune |
|
FailureThreshold |
Integer |
Non |
Non |
Le nombre minimal d'échecs consécutifs pour que la sonde soit considérée comme ayant échoué. |
Les échecs doivent être consécutifs. Valeur par défaut : 3. |
|
InitialDelaySeconds |
Integer |
Non |
Non |
Le délai en secondes après le démarrage du conteneur avant que la sonde ne soit initiée. |
Unité : secondes. |
|
TimeoutSeconds |
Integer |
Non |
Non |
Le nombre de secondes après lequel la sonde expire. |
Valeur minimale : 1. Valeur par défaut : 1. |
|
SuccessThreshold |
Integer |
Non |
Non |
Le nombre de vérifications réussies consécutives requises pour que la sonde soit considérée comme réussie après un échec. |
Valeur : 1. Valeur par défaut : 1. |
|
Exec.Command |
List |
Non |
Non |
La commande de la sonde. |
Aucune |
|
PeriodSeconds |
Integer |
Non |
Non |
La période de la sonde. |
Unité : secondes. Valeur minimale : 1. Valeur par défaut : 10. |
|
HttpGet.Path |
String |
Non |
Non |
Le chemin pour la vérification HTTP GET. |
Aucune |
Syntaxe DnsConfig
"DnsConfig": {
"NameServer": List,
"Search": List,
"Option": List
}
Propriétés DnsConfig
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
NameServer |
List |
Non |
Non |
Les adresses IP des serveurs DNS. |
Aucune |
|
Search |
List |
Non |
Non |
La liste des domaines de recherche DNS. |
Aucune |
|
Option |
List |
Non |
Non |
Les options du résolveur DNS. |
Chaque option possède un nom et une valeur facultative. |
Syntaxe 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
}
]
Propriétés InitContainer
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
EnvironmentVar |
List |
Non |
Non |
Variables d'environnement du conteneur. |
Chaque variable est une paire clé-valeur de type string. Maximum : 100. Valeur valide : status.podIP. |
|
SecurityContext |
Map |
Non |
Non |
Contexte de sécurité du groupe de conteneurs. |
Aucune |
|
Name |
String |
Non |
Non |
Nom du conteneur. |
Aucune |
|
Image |
String |
Non |
Non |
Image du conteneur. |
Aucune |
|
Arg |
List |
Non |
Non |
Paramètres transmis à la commande. |
Type String. Maximum : 10. |
|
WorkingDir |
String |
Non |
Non |
Répertoire de travail du conteneur. |
Aucune |
|
Port |
List |
Non |
Non |
Ports et protocoles ouverts. |
Maximum : 100 ports. Protocoles valides :
|
|
Command |
List |
Non |
Non |
Commandes à exécuter dans le conteneur. |
Maximum : 1 commande. Longueur maximale de la chaîne : 256 caractères. |
|
Memory |
Number |
Non |
Non |
Mémoire allouée au conteneur. |
Unité : Go. |
|
ImagePullPolicy |
String |
Non |
Non |
Politique de récupération de l'image. |
Aucune |
|
VolumeMount |
List |
Non |
Non |
Points de montage des volumes pour le conteneur. |
Maximum : 16 volumes pris en charge. |
|
Cpu |
Number |
Non |
Non |
Nombre de CPU alloués au conteneur. |
Aucune |
Syntaxe 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
}
]
Propriétés Volume
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
NFSVolume.Path |
String |
Non |
Non |
Chemin d'accès du volume NFS. |
Aucune |
|
Name |
String |
Oui |
Non |
Nom du volume. |
Aucune |
|
EmptyDirVolume.Medium |
String |
Non |
Non |
Support de stockage. |
Par défaut, le système de fichiers du nœud est utilisé. Valeur valide : Memory. Si vous définissez la valeur sur Memory, EmptyDirVolume est stocké en mémoire. |
|
NFSVolume.Server |
String |
Non |
Non |
Adresse IP du serveur NFS. |
Aucune |
|
NFSVolume.ReadOnly |
Boolean |
Non |
Non |
Propriété en lecture seule du volume NFS. |
Valeur par défaut : false. |
|
ConfigFileVolume.ConfigFileToPath |
List |
Non |
Non |
Chemin d'accès du fichier de configuration. |
|
|
Type |
String |
Oui |
Non |
Type de volume. |
Valeurs valides :
|
|
FlexVolume.Options |
Map |
Non |
Non |
Liste des options pour l'objet FlexVolume. |
Les options sont des paires clé-valeur transmises au format JSON. Par exemple, lors du montage d'un disque cloud à l'aide de FlexVolume, le format des options est |
|
FlexVolume.Driver |
String |
Non |
Non |
Nom du pilote utilisé pour FlexVolume. |
Aucune |
|
FlexVolume.FsType |
String |
Non |
Non |
Type de système de fichiers à monter. |
Aucune |
Syntaxe HostAliase
"HostAliase": [
{
"Ip": String,
"Hostname": List
}
]
Propriétés HostAliase
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Ip |
String |
Non |
Non |
Adresse IP. |
Aucune |
|
Hostname |
List |
Non |
Non |
Nom d'hôte. |
Aucune |
Syntaxe ImageRegistryCredential
"ImageRegistryCredential": [
{
"UserName": String,
"Password": String,
"Server": String
}
]
Propriétés ImageRegistryCredential
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
UserName |
String |
Oui |
Non |
Nom d'utilisateur du registre d'images. |
Aucune |
|
Password |
String |
Oui |
Non |
Mot de passe du registre d'images. |
Aucune |
|
Server |
String |
Oui |
Non |
Adresse du registre d'images. |
Spécifié sans préfixe de protocole. Par exemple, |
Syntaxe EnvironmentVar
"EnvironmentVar": {
"Key": String,
"Value": String,
"FieldRef.FieldPath": String
}
Propriétés EnvironmentVar
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Key |
String |
Non |
Non |
Nom de la variable. |
1 à 128 caractères. Ne peut pas commencer par un chiffre. Peut contenir des chiffres, des lettres et des traits de soulignement (_). |
|
Value |
String |
Non |
Non |
Valeur de la variable. |
0 à 256 caractères. |
|
FieldRef.FieldPath |
String |
Non |
Non |
Référence à une autre variable. |
Actuellement, seul status.podIP est pris en charge. |
Syntaxe SecurityContext
"SecurityContext": {
"Capability.Add": List,
"RunAsUser": Integer,
"ReadOnlyRootFilesystem": Boolen
}
Propriétés SecurityContext
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Capability.Add |
List |
Non |
Non |
Fonctionnalités pouvant être ajoutées au conteneur. |
Valeur valide : ["NET_ADMIN"]. |
|
RunAsUser |
Integer |
Non |
Non |
ID utilisateur. |
Aucune |
|
ReadOnlyRootFilesystem |
Boolean |
Non |
Non |
Indique si le système de fichiers racine est en lecture seule. |
Valeur par défaut : true. |
Syntaxe VolumeMount
"VolumeMount": [
{
"Name": String,
"ReadOnly": Boolean,
"MountPath": String,
"MountPropagation": String,
"SubPath": String
}
]
Propriétés VolumeMount
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Name |
String |
Non |
Non |
Nom du volume. |
Le nom doit correspondre à la valeur spécifiée pour le paramètre name dans la section Volume. |
|
ReadOnly |
Boolean |
Non |
Non |
Indique si le volume est en lecture seule. |
Valeur par défaut : false. |
|
MountPath |
String |
Non |
Non |
Chemin de montage. |
Les données présentes dans le répertoire de destination sont écrasées par le volume monté. |
|
MountPropagation |
String |
Non |
Non |
Paramètre de propagation du montage pour le volume. |
La propagation du montage permet à un volume monté par un conteneur d'être partagé avec d'autres conteneurs du même pod, voire avec d'autres pods sur le même nœud. Valeurs valides :
|
|
SubPath |
String |
Non |
Non |
Sous-répertoire au sein du volume. |
Cette option permet à un pod de monter différents répertoires d'un même volume vers des répertoires distincts dans un conteneur. |
Syntaxe Port
"Port": [
{
"Port": Interger,
"Protocol": String
}
]
Propriétés Port
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Port |
Integer |
Non |
Non |
Numéro de port. |
La valeur doit être comprise entre 1 et 65 535. |
|
Protocol |
String |
Non |
Non |
Protocole utilisé par le port. |
Valeurs valides :
|
Syntaxe ConfigFileVolume.ConfigFileToPath
"ConfigFileVolume.ConfigFileToPath": [
{
"Content": String,
"Path": String
}
]
Propriétés ConfigFileVolume.ConfigFileToPath
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Content |
String |
Non |
Non |
Contenu du fichier de configuration. |
Taille maximale : 32 Ko. |
|
Path |
String |
Oui |
Non |
Chemin relatif dans le fichier de configuration. |
Spécifiez un chemin de répertoire relatif à un autre répertoire. |
Syntaxe SecurityContextSysctl
"SecurityContextSysctl": [
{
"Value": String,
"Name": String
}
]
Propriétés SecurityContextSysctl
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Value |
String |
Non |
Non |
Valeur de la variable pour le contexte de sécurité dans lequel l'instance s'exécute. |
Aucune |
|
Name |
String |
Non |
Non |
Nom système du contexte de sécurité dans lequel l'instance s'exécute. |
Valeurs valides :
|
Syntaxe 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
}
Propriétés ReadinessProbe
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
FailureThreshold |
Integer |
Non |
Non |
Nombre d'échecs consécutifs requis pour considérer la sonde comme ayant échoué après son dernier succès. |
Les échecs doivent être consécutifs. Valeur par défaut : 3. |
|
HttpGet.Scheme |
String |
Non |
Non |
Protocole utilisé pour la requête GET. |
Valeurs valides :
|
|
HttpGet.Path |
String |
Non |
Non |
Chemin pour la vérification HttpGet. |
Aucune |
|
Exec.Command |
List |
Non |
Non |
Commande exécutée lors de la vérification à l'intérieur du conteneur. |
Aucune |
|
TcpSocket.Port |
Integer |
Non |
Non |
Port pour la vérification TcpSocket. |
Aucune |
|
PeriodSeconds |
Integer |
Non |
Non |
Périodicité des vérifications. |
Valeur par défaut : 10. Valeur minimale : 1. Unité : secondes. |
|
TimeoutSeconds |
Integer |
Non |
Non |
Délai d'expiration de la vérification. |
Valeur par défaut : 10. Valeur minimale : 1. Unité : secondes. |
|
InitialDelaySeconds |
Integer |
Non |
Non |
Temps d'attente après le démarrage du conteneur avant d'effectuer la première vérification. |
Aucune |
|
SuccessThreshold |
Integer |
Non |
Non |
Nombre de succès consécutifs requis pour considérer la sonde comme réussie après un échec. |
Les succès doivent être consécutifs. Valeur par défaut : 1. |
|
HttpGet.Port |
Integer |
Non |
Non |
Numéro de port pour la vérification HttpGet. |
Aucune |
Syntaxe Option
"Option": [
{
"Name": String,
"Value": String
}
]
Propriétés Option
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Name |
String |
Non |
Non |
Nom de l'objet. |
Aucune |
|
Value |
String |
Non |
Non |
Valeur de l'objet. |
Aucune |
Syntaxe Tag
"Tag": [
{
"Key": String,
"Value": String
}
]
Propriétés Tag
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
Key |
String |
Oui |
Non |
Clé du tag. |
Aucune |
|
Value |
String |
Non |
Non |
Valeur du tag. |
Aucune |
Syntaxe AcrRegistryInfo
"AcrRegistryInfo": [
{
"RegionId": String,
"InstanceName": String,
"Domain": List,
"InstanceId": String
}
]
Propriétés AcrRegistryInfo
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour autorisée |
Description |
Contraintes |
|
RegionId |
String |
Non |
Non |
ID de la région. |
La valeur par défaut correspond à la région locale. |
|
InstanceName |
String |
Non |
Non |
Nom de l'instance. |
Aucune |
|
Domain |
List |
Non |
Non |
Nom de domaine. |
La valeur par défaut inclut tous les noms de domaine de l'instance. |
|
InstanceId |
String |
Oui |
Non |
ID de l'instance. |
Aucune |
Valeur de retour
Fn::GetAtt
ContainerGroupId : ID du groupe de conteneurs.
ContainerGroupName : Nom du groupe de conteneurs.
SecurityGroupId : ID du groupe de sécurité.
Ipv6Address : Adresse IPv6.
InternetIp : Adresse IP publique.
RegionId : Région où se trouve l'instance.
IntranetIp : Adresse IP interne.
ZoneId : ID de la zone.
VSwitchId : ID du vSwitch.
EniInstanceId : ID de l'ENI.
Exemples
Format YAML
ROSTemplateFormatVersion: '2015-09-01'
Description: Test ECI ContainerGroup
Parameters:
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
Label:
zh-cn: VSwitch ID
en: VSwitch ID
SecurityGroup:
Type: String
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
Label:
zh-cn: Security Group 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: {}
Format JSON
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test ECI ContainerGroup",
"Parameters": {
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Type": "String",
"Label": {
"zh-cn": "VSwitch ID",
"en": "VSwitch ID"
}
},
"SecurityGroup": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
"Label": {
"zh-cn": "Security Group 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": {
}
}