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.
Obtenir les sorties exportées d’une pile CloudFormation déployée
Lorsque vous disposez de plusieurs piles dans le même Compte AWS et de la même région, vous pourriez vouloir partager des informations entre elles. Cela est utile lorsqu’une pile doit utiliser des ressources créées par une autre pile.
Par exemple, vous pouvez avoir une pile qui crée des ressources réseau, telles que des sous-réseaux et des groupes de sécurité, pour vos serveurs Web. Les autres piles qui créent les serveurs Web réels peuvent alors utiliser les ressources réseau créées par la première pile. Vous n'avez pas besoin de coder en dur les ID de ressources dans le modèle de la pile ou transmettre les ID en tant que paramètres d'entrée.
Pour partager des informations entre les piles, vous exportez les valeurs de sortie d’une pile et les importez dans une autre pile. Voici comment cela fonctionne :
-
Dans le modèle de la première pile (par exemple, la pile réseau), vous définissez certaines valeurs à exporter à l’aide du champ
Exportdans la sectionOutputs. Pour de plus amples informations, consultez Syntaxe Outputs du modèle CloudFormation. -
Lorsque vous créez ou mettez à jour cette pile, CloudFormation exporte les valeurs de sortie, les rendant ainsi disponibles pour d’autres piles du même Compte AWS et de la même région.
-
Dans le modèle de l’autre pile, vous utilisez la fonction Fn::ImportValue pour importer les valeurs exportées depuis la première pile.
-
Lorsque vous créez ou mettez à jour la deuxième pile (par exemple, la pile du serveur web), CloudFormation récupère automatiquement les valeurs exportées depuis la première pile et les utilise.
Pour obtenir une procédure pas à pas et des exemple de modèles, consultez Référencer les sorties de ressources dans une autre pile CloudFormation.
Exportation de valeurs de sortie de pile comparée à l'utilisation de piles imbriquées
Une pile imbriquée est une pile que vous créez dans une autre pile à l’aide de la ressource AWS::CloudFormation::Stack. Avec les piles imbriquées, vous déployez et gérez toutes les ressources à partir d'une même pile. Vous pouvez utiliser les sorties d'une pile du groupe de piles imbriquées comme entrées dans une autre pile du groupe. Cela est différent de l'exportation de valeurs.
Si vous voulez isoler le partage d'informations au sein d'un groupe de piles imbriquées, nous vous conseillons d'utiliser des piles imbriquées. Pour partager des informations avec d'autres piles (et pas seulement dans le groupe de piles imbriquées), il convient d'exporter les valeurs. Par exemple, vous pouvez créer une pile unique avec un sous-réseau, puis exporter son ID. Les autres piles peuvent utiliser ce sous-réseau en important son ID. Chaque pile n’a pas besoin de créer son propre sous-réseau. Tant que les piles importent l'ID du sous-réseau, vous ne pouvez pas le modifier ni le supprimer.
Pour plus d’informations sur les piles imbriquées, consultez Diviser un modèle en éléments réutilisables à l’aide de piles imbriquées.
Considérations
Les restrictions suivantes s'appliquent aux références entre piles :
-
Pour chaque Compte AWS, les noms
Exportdoivent ê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::ImportValuepour importer uniquement les valeurs qui ont été exportées dans la même région. -
Pour les sorties, la valeur de la propriété
Named'unExportne peut pas utiliser de fonctionsRefouGetAttqui dépendent d'une ressource.De même, la fonction
ImportValuene peut pas inclure de fonctionsRefouGetAttqui dépendent d'une ressource. -
Lorsqu'une autre pile importe une valeur de sortie, vous ne peut pas supprimer la pile qui exporte la valeur de sortie ou modifier la valeur de sortie exportée. Toutes les importations doivent être supprimées avant de pouvoir supprimer la pile d'exportation ou modifier la valeur de sortie.
Affichage des valeurs de sortie exportées
Si vous avez besoin de consulter les valeurs de sortie exportées de vos piles, utilisez l’une des méthodes suivantes :
Pour afficher les valeurs de sortie exportées (console)
-
Ouvrez la console CloudFormation, à l’adresse https://console.aws.amazon.com/cloudformation
. -
Dans la barre de navigation, en haut de l’écran, sélectionnez votre Région AWS.
-
Dans le panneau de navigation gauche, sélectionnez Exportations.
Pour afficher les valeurs de sortie exportées (AWS CLI)
Utilisez la commande list-exports suivante. Remplacez us-east-1 par votre Région AWS.
aws cloudformation list-exports --regionus-east-1
Voici un exemple de sortie.
{
"Exports": [
{
"ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800",
"Name": "private-vpc-subnet-a",
"Value": "subnet-07b410xmplddcfa03"
},
{
"ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800",
"Name": "private-vpc-subnet-b",
"Value": "subnet-075ed3xmplebd2fb1"
},
{
"ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800",
"Name": "private-vpc-vpcid",
"Value": "vpc-011d7xmpl100e9841"
}
]
}
CloudFormation affiche les noms et les valeurs des sorties exportées pour la région actuelle et la pile à partir de laquelle elles ont été exportées. Pour utiliser une valeur de sortie exportée dans le modèle d’une autre pile, vous pouvez la référencer à l’aide du nom d’exportation et de la fonction Fn::ImportValue.
Affichage des piles qui importent une valeur de sortie exportée
Pour supprimer ou modifier des valeurs de sortie exportées, vous devez d’abord déterminer quelles piles les importent.
Pour afficher les piles qui importent une valeur de sortie exportée, utilisez l’une des méthodes suivantes :
Pour répertorier les piles qui importent une valeur de sortie exportée (console)
-
Ouvrez la console CloudFormation, à l’adresse https://console.aws.amazon.com/cloudformation
. -
Dans le panneau de navigation gauche, sélectionnez Exportations.
-
Pour voir quelles piles importent une valeur d'exportation donnée, choisissez l'option Export Name (Nom de l'exportation) correspondant à cette valeur d'exportation. CloudFormation affiche la page des détails de l'exportation, qui répertorie toutes les piles qui importent la valeur.
Pour répertorier les piles qui importent une valeur de sortie exportée (AWS CLI)
Utilisez la commande list-imports. Remplacez us-east-1 par votre Région AWS et par le nom de la valeur de sortie exportée.private-vpc-vpcid
aws cloudformation list-imports --regionus-east-1\ --export-nameprivate-vpc-vpcid
CloudFormation renvoie une liste des piles qui importent la valeur.
{
"Imports": [
"my-app-stack"
]
}
Une fois que vous savez quelles piles importent une valeur exportée particulière, vous devez modifier ces piles pour supprimer les fonctions Fn::ImportValue qui font référence aux valeurs de sortie. Vous devez supprimer toutes les importations qui font référence aux valeurs de sortie exportées avant de pouvoir supprimer ou modifier les valeurs de sortie exportées.