Intégrez des piles dans d'autres piles à l'aide de piles imbriquées - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Intégrez des piles dans d'autres piles à l'aide de piles imbriquées

Les piles imbriquées sont des piles qui sont créées dans le cadre d'autres piles. Vous créez une pile imbriquée dans une autre pile en utilisant AWS::CloudFormation::Stackressource.

A mesure que votre infrastructure s'agrandit, des tendances communes peuvent émerger, dans lesquelles vous déclarez les mêmes composants dans plusieurs modèles. Vous pouvez séparer ces composants courants et créer des modèles correspondants. Utilisez ensuite la ressource de votre modèle pour référencer d'autres modèles, en créant des piles imbriquées.

Par exemple, supposons que vous utilisiez une configuration d'équilibreur de charge pour la plupart de vos piles. Au lieu de copier et coller les mêmes configurations dans vos modèles, vous pouvez créer un modèle dédié pour l'équilibreur de charge. Ensuite, il ne vous reste plus qu'à utiliser la ressource pour faire référence à ce modèle à partir des autres modèles.

Les piles imbriquées peuvent elles-mêmes contenir d'autres piles imbriqués, ce qui se traduit par une hiérarchie de piles, comme illustré dans le schéma ci-dessous. La pile racine est la pile de premier niveau à laquelle toutes les piles imbriquées appartiennent. En outre, chaque pile imbriquée a une pile parent directe. Pour le premier niveau de piles imbriquées, la pile racine est également la pile parent. Illustration dans le diagramme ci-dessous :

  • La pile A est la pile racine de toutes les autres piles, imbriquées, dans la hiérarchie.

  • Pour la pile B, la pile A est à la fois la pile parent et la pile racine.

  • Pour la pile D, la pile C est la pile parent, tandis que pour la pile C, la pile B est la pile parent.

Les piles imbriquées, qui sont créées dans le cadre d'une autre pile, ont une pile parent directe et une pile racine au premier niveau.

Fractionnement d'un modèle CloudFormation

Cet exemple montre comment prendre un CloudFormation modèle unique et volumineux et le réorganiser en un design plus structuré et réutilisable à l'aide de modèles imbriqués. Initialement, le modèle « Before nesting stacks » affiche toutes les ressources définies dans un seul fichier. Cela peut devenir compliqué et difficile à gérer à mesure que le nombre de ressources augmente. Le modèle « Après imbrication des piles » divise les ressources en modèles distincts plus petits appelés piles imbriquées. Chaque pile imbriquée gère un ensemble spécifique de ressources connexes, ce qui rend la structure globale plus organisée et plus facile à gérer.

Avant la nidification, piles

Après la nidification, des piles

AWSTemplateFormatVersion: '2010-09-09' Parameters: InstanceType: Type: String Default: 't2.micro' Description: 'The EC2 instance type' Environment: Type: String Default: 'Production' Description: 'The deployment environment' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-1234567890abcdef0 InstanceType: !Ref InstanceType MyS3Bucket: Type: 'AWS::S3::Bucket'
AWSTemplateFormatVersion: '2010-09-09' Resources: MyFirstNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/first-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed InstanceType: 't3.micro' MySecondNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/second-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed Environment: 'Testing' DependsOn: MyFirstNestedStack

Exécution d'opérations de pile sur des piles imbriquées

Lorsque vous avez une pile contenant des piles imbriquées, vous devez faire attention et manipuler correctement les piles imbriquées lorsque vous effectuez certaines actions. Certaines opérations de pile, telles que les mises à jour de piles, doivent être initiées à partir de la pile racine plutôt que d'être effectuées directement sur les piles imbriquées elles-mêmes. De plus, la présence de piles imbriquées peut parfois affecter la manière dont les opérations sur la pile racine sont effectuées.

Utilisez les procédures suivantes pour trouver la pile racine et les piles imbriquées.

Pour afficher la pile racine d'une pile imbriquée
  1. Connectez-vous au AWS Management Console et ouvrez le AWS CloudFormation console sur https://console.aws.amazon.com/cloudformation.

  2. Sur la page Stacks, choisissez le nom de la pile imbriquée dont vous souhaitez afficher la pile racine.

    Les piles imbriquées s'affichent NESTEDau-dessus de leur nom de pile.

  3. Dans l'onglet Stack info, dans la section Overview, choisissez le nom de pile répertorié comme Stack racine.

Pour afficher les piles imbriquées qui appartiennent à une pile racine
  1. Dans la pile racine dont vous souhaitez afficher les piles imbriquées, choisissez l'onglet Ressources.

  2. Dans la colonne Type, recherchez les ressources de type AWS: CloudFormation : :Stack.