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 des sorties exportées à partir d'une CloudFormation pile déployée
Lorsque vous avez plusieurs piles dans la même Compte AWS région, vous souhaiterez peut-être 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 ensuite utiliser les ressources réseau créées par la première pile. Vous n'avez pas besoin de coder en dur la ressource IDs dans le modèle de la pile ou de la transmettre IDs en tant que paramètres d'entrée.
Pour partager des informations entre piles, vous exportez les valeurs de sortie d'une pile et vous 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 en utilisant le
Export
champ de laOutputs
section. Pour de plus amples informations, veuillez consulter Outputs référence de syntaxe de section pour les CloudFormation modèles. -
Lorsque vous créez ou mettez à jour cette pile, CloudFormation exportez les valeurs de sortie pour les mettre à la disposition d'autres piles de la même pile Compte AWS et de la même région.
-
Dans le modèle de l'autre pile, vous utilisez Fn::ImportValuefonction 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 de serveurs Web), récupère CloudFormation automatiquement les valeurs exportées de la première pile et les utilise.
Pour obtenir une procédure pas à pas et des exemple de modèles, consultez Référez-vous aux sorties de ressources dans une autre CloudFormation pile.
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. D'autres piles peuvent utiliser ce sous-réseau en important son identifiant. 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. Intégrez des piles dans d'autres piles à l'aide de piles imbriquées
Considérations
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. -
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 devez afficher les valeurs de sortie exportées à partir de vos piles, appliquez l'une des méthodes suivantes :
Pour afficher les valeurs de sortie exportées (console)
-
Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.
-
Dans la barre de navigation en haut de l'écran, choisissez votre Région AWS.
-
Dans le volet de navigation de gauche, choisissez Exports.
Pour afficher les valeurs de sortie exportées (AWS CLI)
Utilisez ce qui suit list-exportscommande. Remplacez us-east-1
avec votre Région AWS.
aws cloudformation list-exports --region
us-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 de l'exportation et du Fn::ImportValuefonction.
Affichage des piles qui importent une valeur de sortie exportée
Pour supprimer ou modifier les 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, appliquez l'une des méthodes suivantes :
Pour répertorier les piles qui importent une valeur de sortie exportée (console)
-
Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.
-
Dans le volet de navigation de gauche, choisissez Exports.
-
Pour voir quelles piles importent une valeur d'exportation donnée, choisissez le nom d'exportation pour 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)
Utilisation de la list-importscommande. Remplacez us-east-1
avec votre Région AWS et
avec le nom de la valeur de sortie exportée.private-vpc-vpcid
aws cloudformation list-imports --region
us-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 Fn::ImportValuefonctions 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.