Come posso risolvere i problemi relativi all’inclusione di metadati in un'istanza EC2 in CloudFormation?
In AWS CloudFormation, ho usato AWS::CloudFormation::Init per includere metadati in un'istanza di Amazon Elastic Cloud Compute (Amazon EC2). Tuttavia, nell’istanza non vedo le modifiche.
Risoluzione
Prerequisiti: imposta l'opzione Ripristino dello stato precedente in caso di esito negativo per il tuo stack CloudFormation su No.
Se imposti Ripristino dello stato precedente in caso di esito negativo su No e non riesci ancora a includere i metadati nell'istanza EC2, esegui le seguenti azioni.
Nota: i seguenti passaggi di risoluzione riguardano gli stack di CloudFormation creati con un'istanza Linux.
Verifica che lo script di supporto cfn-init sia installato
Per verificare di aver installato cfn-init nell'istanza configurata per inviare segnali alle risorse di CloudFormation, completa i seguenti passaggi:
- Utilizza SSH per connetterti all'istanza.
- Verifica che nella tua directory siano installati cfn-init o il pacchetto aws-cfn-bootstrap.
Per verificare la presenza di cfn-init, esegui il comando seguente:
Per verificare la presenza del pacchetto aws-cfn-bootstrap esegui il comando seguente:sudo find / -name cfn-init/opt/aws/bin/cfn-init /opt/aws/apitools/cfn-init /opt/aws/apitools/cfn-init-1.4-34.24.amzn1/bin/cfn-init /var/lib/cfn-init
Nota: il comando precedente funziona solo sulle distribuzioni che utilizzano RPM Package Manager.sudo rpm -q aws-cfn-bootstrapaws-cfn-bootstrap-1.4-34.24.amzn1.noarch
Per impostazione predefinita, gli script di supporto di CloudFormation sono installati su Amazon Linux Amazon Machine Image (AMI).
Verifica che l'istanza sia connessa a Internet
Se l'istanza si trova in un Amazon Virtual Private Cloud (Amazon VPC), può connettersi a Internet nei seguenti modi:
- Dispositivo NAT in una sottorete privata
- Gateway Internet in una sottorete pubblica
Per testare la connessione a Internet dell'istanza, apri una pagina Web pubblica come la home page di AWS. Quindi, esegui un comando curl sull'istanza. Esempio:
curl -I https://aws.amazon.com
se l'istanza è connessa a Internet, il comando restituisce un codice di stato HTTP 200.
Se utilizzi un endpoint VPC di interfaccia, l'endpoint deve trovarsi nella stessa regione AWS dell'istanza. Inoltre, il gruppo di sicurezza collegato all'endpoint di interfaccia deve consentire le connessioni in ingresso sulla porta 443 dalla sottorete privata di Amazon VPC.
Cerca eventuali errori nei log di cloud-init o cfn-init
Per cercare errori di sintassi o valori errati nei log di cloud-init o di cfn-init, completa i seguenti passaggi:
- Usa SSH per connetterti alla tua istanza.
- Per trovare messaggi di errore dettagliati, cerca le parole chiave error o failure nei seguenti log:
/var/log/cloud-init-output.log
/var/log/cloud-init.log
/var/log/cfn-init.log
/var/log/cfn-init-cmd.log
Per trovare tutte le istanze delle parole error o failure nei file /var/log/cfn or /var/log/cloud-init esegui il seguente comando:
Nota: il comando precedente restituisce il nome del file, il numero di riga e il messaggio di errore.grep -ni 'error\|failure' $(sudo find /var/log -name cfn-init\* -or -name cloud-init\*)
- Utilizza il messaggio di errore dettagliato per correggere gli errori, quindi aggiorna lo stack.
Se cfn-init.log non esiste, il modello di CloudFormation non ha eseguito cfn-init.
Per verificare di aver configurato la proprietà UserData per eseguire cfn-init, completa i passaggi seguenti:
- In un editor di codice, apri il modello di CloudFormation per il tuo stack.
- In UserData, verifica la presenza di errori, ad esempio problemi di sintassi, spazi mancanti, ortografia sbagliata e altri errori di battitura.
- Verifica che i valori per le proprietà dello stack, della risorsa e della regione siano corretti.
- Per la funzione intrinseca Fn::Join della proprietà UserData, utilizza**-v** per eseguire cfn-init in modalità dettagliata. Per esempi di output, consulta Example.
Informazioni correlate

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 3 anni fa