Come faccio a fare riferimento a una risorsa in un altro stack da un modello di CloudFormation?
Quando creo un modello in AWS CloudFormation, desidero fare riferimento a una risorsa in un altro stack CloudFormation.
Risoluzione
Per fare riferimento a una risorsa in un altro stack di CloudFormation, è necessario prima creare riferimenti tra stack. La risoluzione seguente fornisce un esempio di un metodo per creare un riferimento tra diversi stack. Lo stack NetworkStack di esempio crea le risorse ed esportazioni relative alla rete ${AWS::StackName}-SecurityGroupID e ${AWS::StackName}-SubnetID. Dopo la creazione dello stack, CloudFormation sostituisce ${AWS::StackName} con NetworkStack. I nomi di esportazione finali sono NetworkStack-SecurityGroupID e NetworkStack-SubnetID.
Creazione di uno stack per esportare i valori di output
Completa i seguenti passaggi:
- Crea uno stack CloudFormation, quindi utilizza il modello SampleNetworkCrossStack.
Nota: è necessario dichiarare il campo Esporta nella Sezione di output del modello. - Denomina lo stack NetworkStack.
Nota: NetworkStack esporta i valori della sottorete e del gruppo di sicurezza.
Uso di una sottorete e di un gruppo di sicurezza importati per creare un'istanza Amazon EC2
Le proprietà delle istanze Amazon Elastic Compute Cloud (Amazon EC2), come SubnetID e SecurityGroupID, utilizzano i valori dello stack di esportazione. Per importare i valori, utilizza la funzione intrinseca Fn::ImportValue.
Nota: lo stack di importazione ed esportazione deve trovarsi nella stessa Regione AWS e nello stesso account AWS. Inoltre, i nomi dei valori esportati devono essere univoci per la tua Regione e il tuo account.
Per creare l'istanza EC2, completa i seguenti passaggi:
- Apri la console CloudFormation.
- Scegli Crea stack, quindi scegli Modello di progettazione.
- Scegli la scheda Parametri dell'editor di codice, quindi scegli Modello.
- Per utilizzare i valori dello stack di esportazione allo scopo di creare l'istanza, inserisci il seguente modello nell'editor di codice:
**Importante:**Imposta lo stack di risorse NetworkStack come valore per NetworkStackParameter. Il valore NetworkStack sostituisce il nome corretto dello stack nelle funzioni Fn::ImportValue corrispondenti.
Nota: sostituisci t2.micro con il tuo tipo di istanza e ami-a1b23456 con il tuo ID Amazon Machine Image (AMI).{ "Parameters": { "NetworkStackParameter": { "Type": "String" } }, "Resources": { "WebServerInstance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": "t2.micro", "ImageId": "ami-a1b23456", "NetworkInterfaces": [ { "GroupSet": [ { "Fn::ImportValue": { "Fn::Sub": "${NetworkStackParameter}-SecurityGroupID" } } ], "AssociatePublicIpAddress": "true", "DeviceIndex": "0", "DeleteOnTermination": "true", "SubnetId": { "Fn::ImportValue": { "Fn::Sub": "${NetworkStackParameter}-SubnetID" } } } ] } } } }
- Scegli Crea stack (icona cloud con freccia su), quindi scegli Successivo.
- In Nome dello stack, inserisci un nome per il tuo stack.
- In Parametri, inserisci il nome dello stack di rete a cui desideri fare un riferimento incrociato, ad esempio NetworkStack.
- Scegli Successivo, quindi scegli di nuovo Successivo.
- Scegli Crea.
- Dopo che lo stato dello stack è cambiato in CREATE\ _COMPLETE, apri la console Amazon EC2.
- Nel riquadro di navigazione, scegli Istanze, quindi seleziona l'istanza che hai creato.
- Scegli la scheda Descrizione, quindi verifica che il gruppo di sicurezza e la sottorete siano configurati.
Importante: quando un altro stack importa lo stack di origine o i valori di esportazione dello stack di origine, non è possibile eliminare questi valori. Per aggiornare i valori di esportazione dello stack di origine, sostituisci prima manualmente i valori negli stack che importano i valori di esportazione dello stack di origine. Quindi, puoi aggiornare i valori di esportazione dello stack di origine.
Per elencare tutti gli stack che stanno importando un valore di output esportato, esegui il comando list-imports. Per elencare tutte le esportazioni in una Regione, utilizza la console CloudFormation o esegui il comando list-exports. Il nome di esportazione deve essere univoco per l'account nella Regione.
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Informazioni correlate
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa