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. Questo è utile quando uno stack deve utilizzare le 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 stack, esporta i valori di output da uno stack e importali in un altro stack. Come funziona:
-
Nel modello del primo stack (ad esempio, lo stack di rete), definisci determinati valori da esportare utilizzando il campo
Exportnella sezioneOutputs. Per ulteriori informazioni, consulta CloudFormation Outputssintassi del modello. -
Quando crei o aggiorni quello stack, CloudFormation esporta i valori di output, rendendoli disponibili ad altri stack nello stesso stack e nella stessa Account AWS regione.
-
Nel modello dell’altro stack, utilizza la funzione Fn::ImportValue per importare i valori esportati dal primo stack.
-
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 questa sottorete importandone l’ID. Non è necessario che ogni stack crei una sottorete propria. Finché gli stack importano l'ID della sottorete, non è possibile modificarlo o eliminarlo.
Per ulteriori informazioni sugli stack nidificati, consulta Dividi un modello in pezzi riutilizzabili usando stack nidificati.
Considerazioni
Ai riferimenti tra stack si applicano le seguenti limitazioni:
-
Per ognuno Account AWS, i
Exportnomi devono essere univoci all'interno di una regione. -
Non puoi creare riferimenti tra stack tra Regioni. Puoi utilizzare la funzione intrinseca
Fn::ImportValueper importare solo valori che sono stati esportati all’interno della stessa Regione. -
Per gli output, il valore della proprietà
Namedi unExportnon può utilizzare le funzioniRefoGetAttche dipendono da una risorsa.Allo stesso modo, la funzione
ImportValuenon può includere le funzioniRefoGetAttche 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 devi visualizzare i valori di output esportati dagli stack, utilizza uno dei metodi seguenti:
Per elencare i valori di output esportati (console)
-
Apri la CloudFormation console in https://console.aws.amazon.com/cloudformazione.
-
Nella barra di navigazione nella parte superiore dello schermo, scegli la Regione AWS.
-
Nel riquadro di navigazione a sinistra, scegli Esportazioni.
Per elencare i valori di output esportati (AWS CLI)
Utilizza il seguente comando list-exports. Sostituisci con il tuous-east-1. Regione AWS
aws cloudformation list-exports --regionus-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 in un modello di stack, puoi farvi riferimento utilizzando il nome di esportazione e la funzione Fn::ImportValue.
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 stack li stanno importando.
Per visualizzare gli stack che importano un valore di output esportato, utilizza uno dei metodi seguenti:
Per elencare gli stack che importano un valore di output esportato (console)
-
Nel riquadro di navigazione a sinistra, scegli Esportazioni.
-
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)
Utilizza il comando list-imports. us-east-1Sostituiscilo con il tuo Regione AWS e con il nome del valore di output esportato.private-vpc-vpcid
aws cloudformation list-imports --regionus-east-1\ --export-nameprivate-vpc-vpcid
CloudFormation restituisce un elenco di pile che stanno importando il valore.
{
"Imports": [
"my-app-stack"
]
}
Una volta che sai quali stack importano un particolare valore esportato, devi modificare tali stack per rimuovere le funzioni Fn::ImportValue 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.