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 avec RoleArn un rôle assumable dans le compte source; pour une pile située dans une autre région, précisez aussi Region. La référence est faible : CloudFormation récupère la valeur à la création ou à la mise à jour de la pile consommatrice, mais ne la synchronise pas automatiquement ensuite.
Quand utiliser Fn::GetStackOutput
La fonction convient au partage d’une valeur de sortie entre piles autonomes, y compris lorsque les piles se trouvent dans des comptes ou des régions différents. Elle fonctionne également dans un même compte et une même région. Contrairement à Fn::ImportValue, elle ne nécessite pas que la pile source déclare un export.
As an Amazon Associate I earn from qualifying purchases.
La référence est dite faible parce que CloudFormation ne protège pas automatiquement la relation entre producteur et consommateur. Si l’output source change ou disparaît après le déploiement, le consommateur n’est pas mis à jour automatiquement. Il faut organiser la stabilité de la valeur et le redéploiement des consommateurs.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Écrire la référence dans le modèle
La forme complète YAML accepte quatre propriétés. StackName est le nom de la pile productrice et OutputName la clé de l’output dans son modèle. Region est facultative; sans elle, CloudFormation cible la région de la pile consommatrice. RoleArn est facultative et sert notamment à accéder à une pile d’un autre compte.
#1 Best Overall
Fn::GetStackOutput:
StackName: ProducerStack
OutputName: VpcId
Region: us-west-2
RoleArn: arn:aws:iam::111111111111:role/GetStackOutputRole
Omettez Region si la pile source est dans la région du consommateur. Pour une référence sans frontière de compte, le rôle d’exécution courant est utilisé par défaut.
Forme courte et fonctions imbriquées
La forme courte !GetStackOutput est admise lorsque les paramètres n’emploient pas eux-mêmes d’autres fonctions courtes. Si un paramètre contient par exemple !Ref ou !Sub, utilisez la forme longue Fn::GetStackOutput et la représentation YAML correspondante : YAML ne permet pas d’imbriquer directement plusieurs tags de forme courte.
Rank #2
Configurer l’accès IAM entre comptes
Pour une pile source dans un autre compte, le rôle indiqué par RoleArn doit permettre la lecture CloudFormation, et sa politique de confiance doit laisser le rôle d’exécution du consommateur l’assumer. Ces contrôles sont distincts : autoriser cloudformation:DescribeStacks ne suffit pas si l’assomption du rôle est refusée.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall- Dans le compte source, créez ou choisissez le rôle dont l’ARN sera indiqué dans
RoleArn. - Dans sa politique d’autorisation, accordez
cloudformation:DescribeStacks; lorsque c’est possible, limitez la ressource à l’ARN de la pile requise. - Dans sa politique de confiance, autorisez le rôle d’exécution de la pile consommatrice à effectuer
sts:AssumeRole. - Dans le modèle consommateur, renseignez
StackName,OutputNameetRoleArn. AjoutezRegionsi la pile source est dans une autre région.
Une référence intercompte et interrégion exige donc que les deux dimensions soient configurées : le rôle source pour le compte et la région exacte de la pile productrice pour l’emplacement.
Rank #3
Choisir entre Fn::GetStackOutput et Fn::ImportValue
| Critère | Export et Fn::ImportValue |
Fn::GetStackOutput |
|---|---|---|
| Même compte et même région | Oui | Oui |
| Référence entre comptes | Non | Oui |
| Référence entre régions | Non | Oui |
| Export explicite requis | Oui | Non |
| Type de référence | Forte | Faible |
| La pile source est-elle protégée contre la modification ou la suppression de l’output pendant son utilisation? | Oui, tant qu’un import actif le référence | Non |
| Résolution de la valeur | Par import de la valeur exportée | À la création ou à la mise à jour du consommateur |
Choisissez Fn::ImportValue lorsque vous avez besoin d’une dépendance forte entre piles d’un même compte et d’une même région : les imports actifs empêchent de modifier ou de supprimer l’output exporté. Choisissez Fn::GetStackOutput pour franchir une frontière de compte ou de région, ou pour éviter la gestion d’exports, en prenant en charge vous-même la stabilité et le cycle de mise à jour des dépendances. Pour des composants regroupés dans un ensemble de piles gérées ensemble, les piles imbriquées constituent également une option documentée par AWS.
Emplacements pris en charge dans un modèle
La fonction peut être employée comme valeur directe d’une propriété de ressource et dans Fn::Join, Fn::If ou Fn::Select. Les valeurs servant à construire ses paramètres ne doivent pas dépendre d’une ressource.
Rank #4
La référence CloudFormation signale les placements suivants comme non pris en charge; ils peuvent produire une erreur InternalFailure :
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minute- Dans une valeur de la carte de variables de
Fn::Sub. - Dans
Fn::Base64. - Comme valeur directe dans la section
Outputs. - Dans
Fn::Equalsde la sectionConditions. - Dans
Fn::ImportValue.
Les limites de placement peuvent évoluer. Consultez la référence actuelle d’AWS pour Fn::GetStackOutput lors de la conception du modèle ou si CloudFormation renvoie InternalFailure.
Best Value
Résoudre les échecs de référence et gérer les changements
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. Une politique d’autorisation correcte sans politique de confiance appropriée ne permet pas l’accès.
Pile ou output introuvable
Confirmez le nom exact de la pile, la clé OutputName et la région indiquée. Une région source invalide ou non activée pour le compte qui la possède peut également faire échouer l’opération.
La valeur source a changé
CloudFormation résout la référence lors de la création ou de la mise à jour du consommateur. Une modification ultérieure de l’output source ne déclenche pas de mise à jour de ce consommateur. Protégez les piles et outputs source contre les changements accidentels, puis planifiez une mise à jour du consommateur quand la valeur change.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Combinaison de régions avec us-east-1
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 cette combinaison échoue, consultez la documentation AWS de Fn::GetStackOutput et suivez la recommandation applicable.
Utiliser la fonction avec AWS CDK
Le CDK expose cette fonction sous la forme Fn.getStackOutput(). Pour des références entre piles CDK qui traversent des comptes ou des régions, cette prise en charge native peut éviter des ressources personnalisées fondées sur des paramètres Systems Manager et l’ancien mécanisme crossRegionReferences. La configuration et les détails d’API varient selon la version du CDK; vérifiez la documentation correspondant à la version installée avant d’adapter un exemple. La référence de fonction et les limites de CloudFormation sont décrites dans la documentation AWS.
Quick Recap
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.




