Ottieni gli output esportati da uno stack distribuito CloudFormation - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottieni gli output esportati da uno stack distribuito CloudFormation

Se disponi di più stack nella stessa regione Account AWS e nella stessa regione, potresti voler condividere informazioni tra di loro. Ciò è utile quando uno stack deve utilizzare risorse create da un altro stack.

Ad esempio, potresti avere uno stack che crea risorse di rete, come sottoreti e gruppi di sicurezza, per i tuoi server web. Gli altri stack che creano i server Web effettivi possono quindi utilizzare le risorse di rete create dal primo stack. Non è necessario codificare le risorse IDs nel modello dello stack o passarle IDs come parametri di input.

Per condividere informazioni tra pile, esportate i valori di output da uno stack e li importate in un altro stack. Come funziona:

  1. Nel modello del primo stack (ad esempio, lo stack di rete), definisci determinati valori da esportare utilizzando il Export campo nella sezione. Outputs Per ulteriori informazioni, consulta CloudFormation modello Outputs sintassi.

  2. Quando crei o aggiorni quello stack, CloudFormation esporta i valori di output, rendendoli disponibili per altri stack nella stessa regione. Account AWS

  3. Nel modello dell'altro stack, usi il Fn::ImportValuefunzione per importare i valori esportati dal primo stack.

  4. Quando crei o aggiorni il secondo stack (ad esempio, lo stack del server web), recupera CloudFormation automaticamente i valori esportati dal primo stack e li utilizza.

Per una procedura guidata e modelli di esempio, consulta Fai riferimento agli output di risorse in un altro stack CloudFormation.

Esportazione dei valori di output di uno stack e utilizzo di stack nidificati

Uno stack nidificato è uno stack creato all'interno di un altro stack utilizzando la risorsa AWS::CloudFormation::Stack. Con gli stack nidificati, puoi distribuire e gestire tutte le risorse da un singolo stack. Puoi utilizzare output da uno stack nel gruppo di stack nidificati come input per un altro stack del gruppo. Ciò è diverso dall'esportazione di valori.

Se desideri isolare la condivisione delle informazioni all'interno di un gruppo di stack nidificati, è consigliabile utilizzare stack nidificati. Per condividere le informazioni con altri stack (non solo nel gruppo di stack nidificati), esporta i valori. Ad esempio, puoi creare un singolo stack con una sottorete ed esportarne l'ID. Altri stack possono utilizzare quella sottorete importandone l'ID. Non è necessario che ogni stack crei la propria sottorete. Finché gli stack importano l'ID della sottorete, non è possibile modificarlo o eliminarlo.

Per ulteriori informazioni sugli stack annidati, consulta. Incorpora pile all'interno di altre pile utilizzando pile annidate

Considerazioni

Ai riferimenti tra stack si applicano le seguenti limitazioni:

  • Per ognuno Account AWS, Export i nomi devono essere univoci all'interno di una regione.

  • Non puoi creare riferimenti tra stack tra Regioni. Puoi utilizzare la funzione intrinseca Fn::ImportValue per importare solo valori che sono stati esportati all'interno della stessa Regione.

  • Per gli output, il valore della proprietà Name di un Export non può utilizzare le funzioni Ref o GetAtt che dipendono da una risorsa.

    Allo stesso modo, la funzione ImportValue non può includere le funzioni Ref o GetAtt che dipendono da una risorsa.

  • Quando un altro stack importa un valore di output, non puoi eliminare lo stack che esporta il valore di output o modificare il valore di output esportato. Tutte le importazioni devono essere eliminate prima di poter eliminare lo stack di esportazione o di modificare il valore di output.

Elencazione dei valori di output esportati

Se avete bisogno di visualizzare i valori di output esportati dagli stack, utilizzate uno dei seguenti metodi:

Per elencare i valori di output esportati (console)
  1. Apri la AWS CloudFormation console in /cloudformazione. https://console.aws.amazon.com

  2. Nella barra di navigazione nella parte superiore dello schermo, scegli il tuo. Regione AWS

  3. Dal riquadro di navigazione a sinistra, scegli Esportazioni.

Per elencare i valori di output esportati (AWS CLI)

Usa quanto segue list-exportscomando. Replace (Sostituisci) us-east-1 con il tuo Regione AWS.

aws cloudformation list-exports --region us-east-1

Di seguito è riportato un output di esempio.

{ "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 mostra i nomi e i valori degli output esportati per la regione corrente e lo stack da cui sono stati esportati. Per utilizzare un valore di output esportato nel modello di un altro stack, potete farvi riferimento utilizzando il nome di esportazione e il Fn::ImportValuefunzione.

Creazione di elenchi di stack che importano un valore di output esportato

Per eliminare o modificare i valori di output esportati, devi prima scoprire quali pile li stanno importando.

Per visualizzare gli stack che importano un valore di output esportato, utilizzate uno dei seguenti metodi:

Per elencare gli stack che importano un valore di output esportato (console)
  1. Apri la AWS CloudFormation console in https://console.aws.amazon.com /cloudformation.

  2. Dal riquadro di navigazione a sinistra, scegli Esportazioni.

  3. Per vedere quali pile importano un determinato valore di esportazione, scegli il nome di esportazione per quel valore di esportazione. CloudFormation visualizza la pagina dei dettagli di esportazione, che elenca tutti gli stack che importano il valore.

Per elencare gli stack che importano un valore di output esportato (AWS CLI)

Utilizzo dell'list-importscomando. Replace (Sostituisci) us-east-1 con il tuo Regione AWS e private-vpc-vpcid con il nome del valore di output esportato.

aws cloudformation list-imports --region us-east-1 \ --export-name private-vpc-vpcid

CloudFormation restituisce un elenco di pile che stanno importando il valore.

{ "Imports": [ "my-app-stack" ] }

Una volta individuati gli stack che importano un particolare valore esportato, è necessario modificare tali stack per rimuovere le Fn::ImportValuefunzioni che fanno riferimento ai valori di output. Prima di poter eliminare o modificare i valori di output esportati, è necessario rimuovere tutte le importazioni che fanno riferimento a tali valori.