Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Fn::GetStackOutput permet à une pile CloudFormation de lire un output d’une autre pile sans créer d’export explicite. Pour franchir une frontière de compte, indiquez dans RoleArn un rôle du compte source que le rôle d’exécution de la pile consommatrice peut assumer. Pour une source dans une autre région, ajoutez Region. Cette référence est faible : CloudFormation récupère la valeur à la création ou à la mise à jour du consommateur, mais ne le met pas à jour automatiquement quand la source change.

Syntaxe de Fn::GetStackOutput

La fonction exige le nom de la pile source et la clé de l’output à lire. Region et RoleArn sont facultatifs : par défaut, la région est celle de la pile consommatrice, et le rôle d’exécution actuel est utilisé lorsqu’il n’y a pas de frontière de compte.

Fn::GetStackOutput:
  StackName: ProducerStack
  OutputName: VpcId
  Region: us-west-2
  RoleArn: arn:aws:iam::111111111111:role/GetStackOutputRole
  • StackName : nom de la pile productrice.
  • OutputName : clé logique de l’output dans le modèle de la pile productrice.
  • Region : région exacte de la pile source si elle diffère de celle du consommateur.
  • RoleArn : ARN du rôle situé dans le compte propriétaire de la pile source, nécessaire pour une référence intercompte.

La forme courte !GetStackOutput est possible si ses paramètres n’emploient pas d’autres fonctions courtes. Si un paramètre contient par exemple !Ref ou !Sub, utilisez la forme complète Fn::GetStackOutput avec la représentation correspondante : YAML ne permet pas d’imbriquer plusieurs tags de forme courte.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Référence AWS CloudFormation : Fn::GetStackOutput

Configurer l’accès intercompte

Une référence intercompte repose sur deux contrôles IAM distincts dans le compte source. Le rôle spécifié par RoleArn doit pouvoir appeler cloudformation:DescribeStacks, et sa stratégie de confiance doit autoriser le rôle d’exécution de la pile consommatrice à l’assumer. La permission DescribeStacks seule ne suffit donc pas. AWS recommande de limiter autant que possible la ressource autorisée à l’ARN de la pile nécessaire.

  1. Dans le compte source, créez ou choisissez un rôle IAM dont la stratégie d’autorisation accorde cloudformation:DescribeStacks sur la pile visée.
  2. Dans la stratégie de confiance de ce rôle, autorisez le rôle d’exécution de la pile consommatrice à effectuer sts:AssumeRole.
  3. Dans le modèle consommateur, renseignez le nom de la pile, la clé d’output et l’ARN du rôle source dans RoleArn.
  4. Si la pile source est dans une autre région, indiquez aussi cette région dans Region.

La référence peut franchir à la fois une frontière de compte et une frontière de région en combinant RoleArn et Region. La documentation AWS décrit les paramètres et l’accès requis.

Choisir entre Fn::GetStackOutput et Fn::ImportValue

Critère Export et Fn::ImportValue Fn::GetStackOutput
Dans le même compte et la même région Oui Oui
Entre comptes Non Oui
Entre régions Non Oui
Export explicite nécessaire Oui Non
Force de la référence Forte Faible
Protection contre la modification ou la suppression de l’output source tant qu’il est utilisé Oui Non
Résolution de la valeur Par l’import de la valeur exportée À la création ou à la mise à jour du consommateur

Choisissez Fn::ImportValue lorsque les piles sont dans le même compte et la même région et que la protection de la dépendance est prioritaire : un import actif empêche la modification ou la suppression de l’output exporté. Choisissez Fn::GetStackOutput pour franchir des frontières de compte ou de région, ou éviter de gérer des exports, en acceptant de prendre en charge vous-même la stabilité et le cycle de mise à jour de la dépendance. AWS indique également que les piles imbriquées peuvent convenir au partage de composants entre piles gérées ensemble.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Documentation AWS sur les exports et les valeurs importées

Où la fonction peut être utilisée

La référence CloudFormation décrit l’utilisation de la fonction comme valeur directe d’une propriété de ressource, ainsi que dans Fn::Join, Fn::If et Fn::Select. Les valeurs employées pour construire ses paramètres ne doivent pas dépendre d’une ressource.

La documentation signale des emplacements non pris en charge qui peuvent produire InternalFailure :

  • dans une valeur de la carte de variables de Fn::Sub ;
  • dans Fn::Base64 ;
  • comme valeur directe dans la section Outputs ;
  • dans Fn::Equals de la section Conditions ;
  • dans Fn::ImportValue.

Ces règles peuvent évoluer. Vérifiez la référence CloudFormation actuelle si vous concevez un modèle ou rencontrez une erreur de placement.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Comprendre la référence faible et maîtriser les changements

AWS décrit explicitement Fn::GetStackOutput comme une référence faible. CloudFormation résout la valeur lorsque la pile consommatrice est créée ou mise à jour. Si l’output source change ensuite, le consommateur ne reçoit pas de notification et ne se met pas à jour automatiquement. Si la pile ou l’output source est supprimé, cette référence ne fournit pas la protection qu’apporte un import actif.

  • Protégez la pile source et ses outputs contre les modifications accidentelles.
  • Quand une valeur source change et que le consommateur doit l’utiliser, planifiez une mise à jour de la pile consommatrice.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Dépanner les échecs de résolution

CloudFormation vérifie la référence pendant une opération de création ou de mise à jour de la pile consommatrice. Vérifiez les causes selon le type d’échec :

  • Accès refusé : vérifiez séparément que le rôle consommateur peut assumer le rôle source et que ce dernier autorise cloudformation:DescribeStacks.
  • Pile ou output introuvable : contrôlez le nom de pile, la clé d’output et la région renseignée.
  • Erreur liée à la région : une région invalide ou non activée pour le compte propriétaire de la pile peut faire échouer l’opération.
  • InternalFailure : vérifiez si la fonction est employée dans un emplacement non pris en charge, notamment ceux listés ci-dessus.

Pour certaines références entre us-east-1 et des régions opt-in, AWS recommande de mettre à jour la compatibilité du jeton avec le point de terminaison STS global. Si l’erreur concerne cette combinaison, consultez la recommandation dans la documentation de la fonction.

Utiliser Fn::GetStackOutput avec AWS CDK

La documentation CloudFormation indique que le CDK expose cette fonction sous la forme Fn.getStackOutput(). Pour des références entre piles CDK traversant des comptes ou des régions, cette prise en charge peut éviter des ressources personnalisées fondées sur les paramètres Systems Manager et l’ancien mécanisme crossRegionReferences. La syntaxe et les détails d’intégration dépendent de la version du CDK : consultez la référence API correspondant à la version installée avant d’adapter un exemple.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Référence CloudFormation de Fn::GetStackOutput, y compris le support CDK mentionné par AWS

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.