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à.
Fare riferimento a output di risorse in un altro stack CloudFormation
Questa procedura guidata spiega come fare riferimento agli output di uno stack CloudFormation all’interno di un altro stack per creare modelli più modulari e riutilizzabili.
Invece di includere tutte le risorse in un unico stack, puoi creare risorse AWS correlate in stack separati. Puoi quindi fare riferimento agli output necessari di risorse di altri stack. Limitando i riferimenti tra stack agli output, puoi controllare le parti di uno stack a cui fanno riferimento altri stack.
Ad esempio, potresti avere un stack di rete con un VPC, un gruppo di sicurezza e una sottorete per applicazioni Web pubbliche, nonché uno stack separato per le applicazioni Web pubbliche. Per garantire che le applicazioni Web utilizzino il gruppo di sicurezza e la sottorete dello stack di rete, è necessario creare un riferimento tra stack che consenta allo stack per le applicazioni Web di fare riferimento agli output delle risorse dello stack di rete. Con un riferimento tra stack, non c'è necessità i proprietari degli stack per le applicazioni Web di creare o mantenere regole o asset di rete.
Per creare un riferimento tra stack, utilizza il campo di output Export per contrassegnare il valore dell'output di una risorsa per l'esportazione. Quindi, importa il valore tramite la funzione intrinseca Fn::ImportValue. Per ulteriori informazioni, consulta Ottieni gli output esportati da uno stack di CloudFormation distribuito.
Nota
CloudFormation è un servizio gratuito. Tuttavia, ti verrà addebitato un costo per le risorse AWS che includi nei tuoi stack secondo la tariffa corrente. Per ulteriori informazioni sui prezzi di AWS visita la pagina dei dettagli per ogni prodotto
Argomenti
Utilizzare un modello di esempio per creare uno stack di rete
Prima di iniziare questa procedura guidata, verifica di disporre delle autorizzazioni IAM necessarie per utilizzare tutti i servizi seguenti: Amazon VPC, Amazon EC2 e CloudFormation.
Lo stack di rete contiene il VPC, il gruppo di sicurezza e la sottorete da utilizzare nello stack delle applicazioni Web. Oltre a queste risorse, lo stack di rete crea un gateway Internet e le tabelle di instradamento per abilitare l'accesso pubblico.
È necessario creare questo stack prima di creare lo stack delle applicazioni Web. Se crei prima lo stack dell'applicazione Web, non disporrai di un gruppo di sicurezza o di una sottorete.
Il modello di stack è disponibile al seguente URL: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.templateOutputs, puoi visualizzare le risorse di rete esportate dal modello di esempio. I nomi delle risorse esportate hanno come prefisso il nome dello stack, qualora vengano esportate risorse di rete da altri stack. Quando gli utenti importano le risorse di rete, possono specificare da quale stack farlo.
Per creare lo stack di rete
Accedere alla Console di gestione AWS e aprire la console di CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation
. -
Dalla pagina Stack, scegli Crea stack in alto a destra, poi scegli Con nuove risorse (standard).
-
Seleziona Scegli un modello esistente e, nella sezione Specifica modello, scegli URL Amazon S3.
-
In URL Amazon S3, incolla il seguente URL:
https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template. -
Scegli Next (Successivo).
-
Per Stack name (Nome stack), digitare
SampleNetworkCrossStack, quindi scegliere Next (Avanti).Nota
Registrare il nome di questo stack: servirà all'avvio dello stack delle applicazioni Web.
-
Scegli Next (Successivo). Per questa procedura guidata, non è necessario aggiungere tag o specificare impostazioni avanzate.
-
Assicurarsi che il nome dello stack e l'URL del modello siano corretti e scegliere Create stack (Crea stack).
CloudFormation potrebbe impiegare diversi minuti per creare lo stack. Attendere che tutte le risorse siano state create prima di continuare a creare lo stack delle applicazioni Web.
-
È possibile controllare l'avanzamento negli eventi per lo stack. Per ulteriori informazioni, consulta Monitoraggio dell’avanzamento dello stack.
Utilizzare un modello di esempio per creare uno stack di applicazioni web
Lo stack delle applicazioni Web crea un'istanza EC2 che impiega il gruppo di sicurezza e la sottorete dello stack di rete.
Devi creare questo stack nella stessa Regione AWS dello stack di rete.
Il modello di stack è disponibile al seguente URL: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.templateResources, visualizza le proprietà dell’istanza EC2. È possibile visualizzare il modo in cui le risorse di rete vengono importate da un altro stack utilizzando la funzione Fn::ImportValue.
Per creare lo stack delle applicazioni Web
-
Dalla pagina Stack, scegli Crea stack in alto a destra, poi scegli Con nuove risorse (standard).
-
Seleziona Scegli un modello esistente e, nella sezione Specifica modello, scegli URL Amazon S3.
-
In URL Amazon S3, incolla il seguente URL:
https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template. -
Scegli Next (Successivo).
-
Per Stack name (Nome stack), digitare
SampleWebAppCrossStack. Nella sezione Parameters (Parametri), utilizzare il valore di default per il parametro NetworkStackName, quindi selezionare Next (Avanti).Il modello di esempio usa il valore del parametro per specificare da quale stack importare i valori.
-
Scegli Next (Successivo). Per questa procedura guidata, non è necessario aggiungere tag o specificare impostazioni avanzate.
-
Assicurarsi che il nome dello stack e l'URL del modello siano corretti e scegliere Create stack (Crea stack).
CloudFormation potrebbe impiegare diversi minuti per creare lo stack.
Verificare che lo stack funzioni come previsto
Dopo che lo stack è stato creato, visualizzare le relative risorse e annotare l'ID istanza. Per ulteriori informazioni sulla visualizzazione delle risorse dello stack, consulta Visualizza le informazioni sullo stack dalla console CloudFormation.
Per verificare il gruppo di sicurezza e la sottorete dell'istanza, visualizzare le proprietà di quest'ultima nella console Amazon EC2SampleNetworkCrossStack, il riferimento tra stack è stato creato senza errori.
Utilizza la console per visualizzare gli output dello stack e l'URL del sito Web di esempio per verificare che l'applicazione Web sia operativa. Per ulteriori informazioni, consulta Visualizza le informazioni sullo stack dalla console CloudFormation.
Risolvere gli errori di mappatura AMI
Se ricevi l’errore Template error: Unable to get mapping for
AWSRegionArch2AMI::[region]::HVM64, il modello non include una mappatura AMI per la Regione AWS. Anziché aggiornare la mappatura, consigliamo di utilizzare i parametri pubblici di Systems Manager per fare riferimento alle AMI più recenti in modo dinamico:
-
Scarica il modello
SampleWebAppCrossStacksul computer locale dall’indirizzo: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template. -
Elimina l’intera sezione di mappatura
AWSRegionArch2AMI. -
Aggiungi il seguente parametro di Systems Manager:
"LatestAmiId": { "Description": "The latest Amazon Linux 2 AMI from the Parameter Store", "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" } -
Sostituisci il riferimento
ImageIdesistente:"ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" } , "HVM64" ] },Con:
"ImageId": { "Ref": "LatestAmiId" },Questo parametro viene risolto automaticamente nell’AMI Amazon Linux 2 più recente per la Regione in cui implementi lo stack.
Per altre distribuzioni Linux, utilizza il percorso del parametro adeguato. Per ulteriori informazioni, consulta Discovering public parameters in Parameter Store nella Guida per l’utente di AWS Systems Manager.
-
Carica il modello modificato in un bucket S3 nell’account:
aws s3 cpSampleWebAppCrossStack.templates3://amzn-s3-demo-bucket/ -
Quando crei lo stack, specifica l’URL S3 del modello anziché l’URL dell’esempio.
Pulizia delle risorse
Per assicurarti che non ti vengano addebitati servizi indesiderati, elimina gli stack.
Per eliminare gli stack
-
Dalla console CloudFormation, seleziona lo stack
SampleWebAppCrossStack. -
Scegliere Actions (Operazioni), quindi Delete Stack (Elimina stack).
-
Nel messaggio di conferma, scegliere Delete (Elimina).
-
Una volta eliminato lo stack, ripeti la stessa procedura per lo stack
SampleNetworkCrossStack.Nota
Attendi fino alla completa eliminazione dello stack
SampleWebAppCrossStackda parte di CloudFormation. Se l’istanza EC2 è ancora in esecuzione nel VPC, CloudFormation non eliminerà il VPC nello stackSampleNetworkCrossStack.