New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie behebe ich Probleme, wenn ich Metadaten in eine EC2-Instance in CloudFormation einfüge?
In AWS CloudFormation habe ich AWS::CloudFormation::Init verwendet, um Metadaten in eine Amazon Elastic Cloud Compute (Amazon EC2)-Instance einzubinden. Ich sehe die Änderungen an der Instance jedoch nicht.
Behebung
Voraussetzungen: Setzen Sie die Option Rollback bei Ausfall für Ihren CloudFormation-Stack auf Nein.
Wenn Sie Rollback bei Ausfall auf Nein setzen und trotzdem keine Metadaten in die EC2-Instance aufnehmen können, gehen Sie wie folgt vor.
Hinweis: Die folgenden Lösungsschritte beziehen sich auf CloudFormation-Stacks, die Sie mit einer Linux-Instance erstellt haben.
Stellen Sie sicher, dass das cfn-init-Hilfsskript installiert ist
Gehen Sie wie folgt vor, um zu bestätigen, dass Sie cfn-init auf der Instance installiert haben, die für das Senden von Signalen an CloudFormation-Ressourcen konfiguriert ist:
- Verwenden Sie SSH, um eine Verbindung zur Instance herzustellen.
- Stellen Sie sicher, dass cfn-init oder das aws-cfn-bootstrap-Paket in Ihrem Verzeichnis installiert ist.
Führen Sie den folgenden Befehl aus, um nach cfn-init zu suchen:
Führen Sie den folgenden Befehl aus, um nach dem aws-cfn-bootstrap-Paket zu suchen: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
Hinweis: Der obige Befehl funktioniert nur auf Distributionen, die den RPM-Paketmanager verwenden.sudo rpm -q aws-cfn-bootstrapaws-cfn-bootstrap-1.4-34.24.amzn1.noarch
CloudFormation-Hilfsskripte werden standardmäßig auf dem Amazon Linux Amazon Machine Image (AMI) installiert.
Stellen Sie sicher, dass die Instance mit dem Internet verbunden ist
Wenn sich die Instance in einer Amazon Virtual Private Cloud (Amazon VPC) befindet, kann die Instance über die folgenden Methoden eine Verbindung zum Internet herstellen:
- Ein NAT-Gerät in einem privaten Subnetz
- Ein Internet-Gateway in einem öffentlichen Subnetz
Um die Internetverbindung der Instance zu testen, öffnen Sie eine öffentliche Webseite wie die AWS-Startseite. Führen Sie dann einen curl-Befehl auf der Instance aus. Beispiel:
curl -I https://aws.amazon.com
Wenn die Instance mit dem Internet verbunden ist, gibt der Befehl einen HTTP 200-Statuscode zurück.
Wenn Sie einen Schnittstellen-VPC-Endpunkt verwenden, muss sich der Endpunkt in derselben AWS-Region wie die Instance befinden. Außerdem muss die Sicherheitsgruppe, die an den Schnittstellenendpunkt angehängt ist, eingehende Verbindungen auf Port 443 aus dem privaten Subnetz der Amazon VPC zulassen.
Suchen Sie in den Cloud-Init- oder CFN-Init-Protokollen nach Fehlern
Gehen Sie wie folgt vor, um in den cloud-init- oder cfn-init-Protokollen nach Syntaxfehlern oder falschen Werten zu suchen:
- Verwenden Sie SSH, um eine Verbindung zu Ihrer Instance herzustellen.
- Um detaillierte Fehlermeldungen zu finden, suchen Sie in den folgenden Protokollen nach den Schlüsselwörtern error oder failure:
/var/log/cloud-init-output.log
/var/log/cloud-init.log
/var/log/cfn-init.log
/var/log/cfn-init-cmd.log
Um alle Instances der Wörter error oder failure in den Dateien /var/log/cfn oder /var/log/cloud-init zu finden, führen Sie den folgenden Befehl aus:
Hinweis: Der vorherige Befehl gibt den Dateinamen, die Zeilennummer und die Fehlermeldung zurück.grep -ni 'error\|failure' $(sudo find /var/log -name cfn-init\* -or -name cloud-init\*)
- Verwenden Sie die ausführliche Fehlermeldung, um Fehler zu beheben, und aktualisieren Sie dann den Stack.
Wenn cfn-init.log nicht existiert, wurde cfn-init in der CloudFormation-Vorlage nicht ausgeführt.
Gehen Sie wie folgt vor, um zu bestätigen, dass Sie die UserData-Eigenschaft für die Ausführung von cfn-init konfiguriert haben:
- Öffnen Sie in einem Code-Editor die CloudFormation-Vorlage für Ihren Stack.
- Suchen Sie unter UserData nach Fehlern wie Syntaxfehlern, fehlenden Leerzeichen, Rechtschreibfehlern und anderen Tippfehlern.
- Vergewissern Sie sich, dass die Werte für die Eigenschaften Stack, Ressource und Region korrekt sind.
- Verwenden Sie für die intrinsische Funktion Fn::Join der Eigenschaft UserData -v, um cfn-init im ausführlichen Modus auszuführen. Beispiele für Ausgaben finden Sie unter Beispiel.
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 4 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren