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 procédure pas à pas vous montre 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, vous pouvez avoir une pile réseau avec unVPC, un groupe de sécurité et un sous-réseau pour les applications Web publiques, et une pile d'applications Web publique 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 plus d’informations, consultez Outputs et Fn::ImportValue.
Prérequis
Avant de commencer cette procédure pas à pas, vérifiez que IAM vous êtes autorisé à utiliser tous les services suivants : Amazon VPCEC2, Amazon et CloudFormation.
Note
AWS 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 AWS les prix, consultez la page détaillée de chaque produit
Les restrictions suivantes s'appliquent aux références entre piles :
-
Pour chacun Compte AWS, les
Export
noms doivent être uniques au sein d'une région. -
Il n’est pas possible de créer des références entre piles entre différentes régions. Vous pouvez utiliser la fonction intrinsèque
Fn::ImportValue
pour importer uniquement les valeurs qui ont été exportées dans la même région. -
Pour les sorties, la valeur de la propriété
Name
d'unExport
ne peut pas utiliser de fonctionsRef
ouGetAtt
qui dépendent d'une ressource.De même, la fonction
ImportValue
ne peut pas inclure de fonctionsRef
ouGetAtt
qui dépendent d'une ressource. -
Vous ne pouvez pas supprimer une pile si une autre pile fait référence à l'une de ses sorties.
-
Vous ne pouvez ni modifier ni supprimer une valeur de sortie référencée par une autre pile.
Étape 1 : Utilisation d'un exemple de modèle pour créer une pile de réseau
La pile réseau contient le VPC groupe de sécurité et le sous-réseau que vous utiliserez 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.
Note
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.
Pour créer la pile de réseau
-
Ouvrez la console AWS CloudFormation
et choisissez Créer une pile. -
Choose Template est prêt, et dans la section Spécifier le modèle, sélectionnez Amazon S3 URL. Copiez et collez le texte suivant URL dans la zone de texte :
https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template
Le lien fournit l'emplacement du modèle de la pile de réseau. Pour voir les ressources créées par la pile, cliquez sur le lien, qui ouvre le modèle. Dans la section outputs, vous pouvez voir les ressources de mise en 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.
-
Après avoir examiné le modèle, choisissez Suivant.
-
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.
-
Choisissez Suivant. Pour cette procédure, vous n'avez pas besoin d'ajouter de balises ni de spécifier des paramètres avancés.
-
Assurez-vous que le nom de la pile et le modèle URL sont corrects, puis choisissez Create stack.
La création de votre pile peut prendre plusieurs minutes. AWS CloudFormation Attendez que toutes les ressources aient été créées avant de procéder à la création de la pile d'applications web.
-
Pour surveiller la progression, affichez les événements de la pile. Pour plus d’informations, consultez Afficher les informations relatives à la CloudFormation pile depuis la CloudFormation console.
Étape 2 : Utilisation d'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.
Note
Vous devez créer cette pile dans la même région que la pile de réseau.
Pour créer la pile d'applications web
-
Ouvrez la console AWS CloudFormation
et choisissez Créer une pile. -
Choose Template est prêt, et dans la section Spécifier le modèle, sélectionnez Amazon S3 URL. Copiez et collez ce qui suit URL dans la zone de texte : https://s3.amazonaws.com/cloudformation-examples/SampleWebAppCrossStackuser-guide/cross-stack/
.template Ce lien fournit l'emplacement du modèle d'applications web. Pour voir les ressources que la pile créera, cliquez sur ce lien, qui ouvre le modèle. Dans la section des ressources, consultez les propriétés de l'EC2instance. 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
. -
Après avoir examiné le modèle, choisissez Suivant.
-
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.
-
Choisissez Suivant. Pour cette procédure, vous n'avez pas besoin d'ajouter de balises ni de spécifier des paramètres avancés.
-
Assurez-vous que le nom de la pile et le modèle URL sont corrects, puis choisissez Create stack.
La création de votre pile peut prendre plusieurs minutes. AWS CloudFormation
-
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 CloudFormation 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 EC2console 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.Utilisez la console pour afficher les sorties de la pile et l'exemple de site Web URL pour vérifier que l'application Web est en cours d'exécution. Pour plus d’informations, consultez Afficher les informations relatives à la CloudFormation pile depuis la CloudFormation console.
Étape 3 : Nettoyer vos ressources
Pour éviter que des services non souhaités vous soient facturés, supprimez les piles.
Pour supprimer les piles
-
Dans la AWS CloudFormation console, choisissez la SampleWebAppCrossStack pile.
-
Choisissez Actions, puis Supprimer la pile.
-
Dans le message de confirmation, choisissez Supprimer.
-
Une fois la pile supprimée, répétez les mêmes étapes pour la SampleNetworkCrossStack pile.
Note
Attendez que la SampleWebAppCrossStack pile soit AWS CloudFormation complètement supprimée. Si l'EC2instance est toujours en cours d'exécution dans leVPC, elle CloudFormation ne sera pas supprimée VPC dans la SampleNetworkCrossStack pile.
Toutes les ressources que vous avez créées précédemment sont supprimées.
Appuyez-vous sur les exemples de modèles de cette procédure pour créer vos propres piles à références croisées.