La ressource ALIYUN::ROS::Stack permet de créer une pile imbriquée. Vous pouvez imbriquer des piles jusqu'à cinq niveaux de profondeur.
Une pile imbriquée peut contenir d'autres piles imbriquées, formant ainsi une hiérarchie de piles. La pile racine constitue le niveau supérieur auquel appartiennent toutes les piles imbriquées ; son modèle est appelé « modèle de niveau supérieur ». Utilisez la ressource ALIYUN::ROS::Stack pour intégrer une pile en tant que ressource dans un modèle de niveau supérieur.
Dans un modèle de pile imbriquée, vous pouvez transmettre la sortie d'une pile en tant qu'entrée à une autre. Pour récupérer la sortie d'une pile imbriquée, utilisez la fonction Fn::GetAtt avec le nom de la pile imbriquée et le nom de la sortie, au format Outputs.NestedStackOutputName. Utilisation des piles imbriquées.
Syntaxe
{
"Type": "ALIYUN::ROS::Stack",
"Properties": {
"TemplateURL": String,
"TemplateBody": String,
"TemplateId": String,
"TemplateVersion": String,
"TimeoutMins": Number,
"Parameters": Map,
"ResourceGroupId": String,
"Tags": List
}
}
Propriétés
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contrainte |
|
TemplateURL |
String |
Non |
Oui |
L'URL du fichier de corps de modèle. |
Le fichier de corps de modèle ne doit pas dépasser 524 288 octets. L'URL ne doit pas dépasser 1 024 octets. L'URL doit pointer vers un modèle hébergé sur un serveur web HTTP ou HTTPS, ou dans un compartiment Object Storage Service (OSS), par exemple Si l'ID de région du compartiment OSS n'est pas spécifié, l'ID de région de la pile est utilisé. Spécifiez l'une des propriétés suivantes : |
|
TemplateBody |
Map |
Non |
Oui |
Le contenu du corps de modèle destiné à la diffusion du modèle. |
Le contenu correspond aux données brutes. Les fonctions présentes dans le contenu du modèle s'appliquent uniquement aux modèles enfants. Spécifiez l'une des propriétés suivantes : |
|
TemplateId |
String |
Non |
Oui |
L'ID du modèle. |
Spécifiez l'une des propriétés suivantes : |
|
TemplateVersion |
String |
Non |
Oui |
Le nom de la version du modèle. |
Aucune. |
|
TimeoutMins |
Number |
Non |
Oui |
Le délai d'expiration pour la création ou la mise à jour de la pile parente. |
Unité : minutes. Valeur par défaut : 60. |
|
Parameters |
Map |
Non |
Oui |
Paires clé-valeur représentant les paramètres transmis à ROS lors de la création de la pile imbriquée. |
Chaque paire clé-valeur correspond à un paramètre défini dans le modèle de la pile imbriquée. Cette propriété est requise lorsque la pile imbriquée possède des paramètres d'entrée. |
|
ResourceGroupId |
String |
Non |
Non |
L'ID du groupe de ressources. |
Aucune. |
|
Tags |
List |
Non |
Oui |
Les tags. |
Vous pouvez spécifier jusqu'à 20 tags. Propriétés des tags. |
Syntaxe des tags
"Tags": [
{
"Key": String,
"Value": String
}
]
Propriétés des tags
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contrainte |
|
Key |
String |
Oui |
Non |
La clé du tag. |
La clé du tag peut comporter jusqu'à 128 caractères. Elle ne doit pas commencer par |
|
Value |
String |
Non |
Non |
La valeur du tag. |
La valeur du tag peut comporter jusqu'à 128 caractères. Elle ne doit pas commencer par |
Valeurs de retour
Fn::GetAtt
Utilisez le code suivant pour obtenir la sortie d'une pile imbriquée :
{
"Fn::GetAtt": [
"<nested_stack>",
"Outputs.<nested_stack_output_name>"
]
}
Si vous utilisez Ref pour faire référence à une ressource de pile imbriquée, le système renvoie le nom de ressource Alibaba Cloud (ARN) de la pile imbriquée. Exemple : arn:acs:ros::cn-hangzhou:12345****:stacks/test-nested-stack-Demo-jzkyq7mn****/e71c1e04-1a57-46fc-b9a4-cf7ce0d3****.
Exemples
Les exemples YAML et JSON suivants créent une pile enfant contenant un réseau privé virtuel (VPC), un commutateur virtuel (vSwitch) et un groupe de sécurité. Le modèle de la pile enfant est stocké à l'emplacement oss://ros/template/vpc.txt.
Les exemples YAML et JSON suivants créent une pile parente :