Référez-vous aux sorties de ressources dans une autre CloudFormation pile - 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.

Référez-vous aux sorties de ressources dans une autre CloudFormation pile

Cette présentation explique comment référencer les sorties d'une CloudFormation pile au sein d'une autre pile afin de créer des modèles plus modulaires et réutilisables.

Au lieu d'inclure toutes les ressources dans une seule pile, vous créez des AWS ressources connexes dans des piles distinctes. Vous pouvez ensuite vous référer aux sorties de ressources requises provenant d'autres piles. En limitant les références entre piles aux sorties, vous contrôlez les parties d'une pile qui sont référencées par d'autres piles.

Par exemple, supposons que vous disposez d'une pile de réseau constituée d'un VPC, d'un groupe de sécurité, d'un sous-réseau pour les applications web publiques et d'une pile d'applications web publiques distincte. Pour garantir que les applications web publiques utilisent le groupe de sécurité et le sous-réseau de la pile de réseau, vous devez créer une référence entre piles qui permette à la pile d'applications web de faire référence à des sorties de ressource de la pile de réseau. Avec une référence entre piles, les propriétaires des piles d'applications web n'ont pas besoin de créer ou de gérer des règles de mise en réseau ou des ressources.

Pour créer une référence entre piles, utilisez le champ de sortie Export pour signaler la valeur d'une sortie de ressource pour l'exportation. Ensuite, utilisez la fonction intrinsèque Fn::ImportValue pour importer la valeur. Pour de plus amples informations, veuillez consulter Obtenir des sorties exportées à partir d'une CloudFormation pile déployée.

Note

CloudFormation est un service gratuit. Toutefois, les AWS ressources que vous incluez dans vos piles vous sont facturées au taux en vigueur pour chacune d'entre elles. Pour plus d'informations sur la tarification AWS , consultez la page de détails de chaque produit.

Utiliser un exemple de modèle pour créer une pile réseau

Avant de commencer cette procédure pas à pas, vérifiez que vous disposez des autorisations IAM pour utiliser tous les services suivants : Amazon VPC, Amazon EC2 et. CloudFormation

La pile de réseau contient le VPC, le groupe de sécurité et le sous-réseau que vous souhaitez utiliser dans la pile d'applications web. En plus de ces ressources, la pile de réseau crée une passerelle Internet et des tables de routage pour autoriser l'accès public.

Vous devez créer cette pile avant de créer la pile d'applications web. Si vous créez la pile d'applications web en premier, elle ne contient pas de groupe de sécurité ni de sous-réseau.

Le modèle de pile est disponible à l'adresse URL suivante : https://s3.amazonaws.com/cloudformation-examples/user- guide/cross-stack/SampleNetworkCrossStack .template. Pour voir les ressources créées par la pile, cliquez sur le lien, qui ouvre le modèle. Dans Outputs cette section, vous pouvez voir les ressources réseau exportées par l'exemple de modèle. Les noms des ressources exportées sont préfixés du nom de la pile dans le cas où vous exportez des ressources de mise en réseau à partir d'autres piles. Lorsque les utilisateurs importent des ressources de mise en réseau, ils peuvent indiquer à partir de quelle pile les ressources sont importées.

Pour créer la pile de réseau
  1. Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Sur la page Stacks, choisissez Create stack en haut à droite, puis choisissez Avec de nouvelles ressources (standard).

  3. Choisissez Choisir un modèle existant, puis dans la section Spécifier le modèle, choisissez l'URL Amazon S3.

  4. Pour l'URL Amazon S3, collez l'URL suivante :https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template.

  5. Choisissez Suivant.

  6. Pour Nom de la pile, tapez SampleNetworkCrossStack, puis choisissez Suivant.

    Note

    Notez le nom de cette pile. Vous en aurez besoin lorsque vous lancerez la pile d'applications web.

  7. Choisissez Suivant. Pour cette procédure, vous n'avez pas besoin d'ajouter de balises ni de spécifier des paramètres avancés.

  8. Assurez-vous que le nom de la pile et l'URL du modèle sont corrects, puis choisissez Créer une pile.

    La création de votre pile peut prendre plusieurs minutes. CloudFormation Attendez que toutes les ressources aient été créées avant de procéder à la création de la pile d'applications web.

  9. Pour surveiller la progression, affichez les événements de la pile. Pour de plus amples informations, veuillez consulter Surveillez la progression de la pile.

Utiliser un exemple de modèle pour créer une pile d'applications Web

La pile d'applications Web crée une EC2 instance qui utilise le groupe de sécurité et le sous-réseau de la pile réseau.

Vous devez créer cette pile de la même manière Région AWS que la pile réseau.

Le modèle de pile est disponible à l'adresse URL suivante : https://s3.amazonaws.com/cloudformation-examples/user- guide/cross-stack/SampleWebAppCrossStack .template. Pour voir les ressources que la pile créera, cliquez sur ce lien, qui ouvre le modèle. Dans la Resources section, consultez les propriétés de l' EC2 instance. Vous pouvez voir comment les ressources de mise en réseau sont importées à partir d'une autre pile à l'aide de la fonction Fn::ImportValue.

Pour créer la pile d'applications web
  1. Sur la page Stacks, choisissez Create stack en haut à droite, puis choisissez Avec de nouvelles ressources (standard).

  2. Choisissez Choisir un modèle existant, puis dans la section Spécifier le modèle, choisissez l'URL Amazon S3.

  3. Pour l'URL Amazon S3, collez l'URL suivante :https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template.

  4. Choisissez Suivant.

  5. Pour le Nom de la pile, tapez SampleWebAppCrossStack. Dans la section Paramètres, utilisez la valeur par défaut du NetworkStackNameparamètre, puis choisissez Next.

    L'exemple de modèle utilise la valeur du paramètre pour indiquer à partir de quelle pile les valeurs sont importées.

  6. Choisissez Suivant. Pour cette procédure, vous n'avez pas besoin d'ajouter de balises ni de spécifier des paramètres avancés.

  7. Assurez-vous que le nom de la pile et l'URL du modèle sont corrects, puis choisissez Créer une pile.

    La création de votre pile peut prendre plusieurs minutes. CloudFormation

Vérifiez que la pile fonctionne comme prévu

Une fois que la pile a été créée, affichez ses ressources et notez l'ID d'instance. Pour plus d'informations sur l'affichage des ressources d'une pile, consultez la page Afficher les informations relatives à la pile depuis la CloudFormation console.

Pour vérifier le groupe de sécurité et le sous-réseau de l'instance, consultez les propriétés de l'instance dans la EC2 console Amazon. Si l'instance utilise le groupe de sécurité et le sous-réseau de la pile SampleNetworkCrossStack, cela signifie que la référence entre piles a bien été créée.

Servez-vous de la console pour examiner les sorties de pile et l'URL de l'exemple de site web afin de vérifier que l'application web est bien en cours d'exécution. Pour de plus amples informations, veuillez consulter Afficher les informations relatives à la pile depuis la CloudFormation console.

Résoudre les erreurs de mappage d'AMI

Si vous recevez le message d'erreurTemplate error: Unable to get mapping for AWSRegionArch2AMI::[region]::HVM64, le modèle n'inclut pas de mappage AMI pour votre Région AWS. Au lieu de mettre à jour le mappage, nous vous recommandons d'utiliser les paramètres publics de Systems Manager pour référencer dynamiquement les dernières versions AMIs :

  1. Téléchargez le SampleWebAppCrossStack modèle sur votre machine locale depuis : https://s3.amazonaws.com/cloudformation-examples/user- guide/cross-stack/SampleWebAppCrossStack .template.

  2. Supprimez toute la section AWSRegionArch2AMI de mappage.

  3. Ajoutez le paramètre Systems Manager suivant :

    "LatestAmiId": { "Description": "The latest Amazon Linux 2 AMI from the Parameter Store", "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" }
  4. Remplacez la ImageId référence existante :

    "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" } , "HVM64" ] },

    par :

    "ImageId": { "Ref": "LatestAmiId" },

    Ce paramètre est automatiquement résolu vers l'AMI Amazon Linux 2 la plus récente pour la région dans laquelle vous déployez la pile.

    Pour les autres distributions Linux, utilisez le chemin de paramètre approprié. Pour plus d'informations, consultez la section Découverte de paramètres publics dans Parameter Store dans le guide de AWS Systems Manager l'utilisateur.

  5. Téléchargez le modèle modifié dans un compartiment S3 de votre compte :

    aws s3 cp SampleWebAppCrossStack.template s3://amzn-s3-demo-bucket/
  6. Lors de la création de la pile, spécifiez l'URL de votre modèle S3 au lieu de l'URL d'exemple.

Nettoyage de vos ressources

Pour éviter que des services non souhaités vous soient facturés, supprimez les piles.

Pour supprimer les piles
  1. Dans la CloudFormation console, choisissez la SampleWebAppCrossStack pile.

  2. Choisissez Actions, puis Supprimer la pile.

  3. Dans le message de confirmation, choisissez Supprimer.

  4. Une fois la pile supprimée, répétez les mêmes étapes pour la SampleNetworkCrossStack pile.

    Note

    Attendez que la SampleWebAppCrossStack pile soit CloudFormation complètement supprimée. Si l' EC2 instance est toujours en cours d'exécution dans le VPC, le VPC CloudFormation ne sera pas supprimé de la pile. SampleNetworkCrossStack