AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie behebe ich Fehler bei benutzerdefinierten Ressourcen in CloudFormation?
Ich möchte Fehler bei benutzerdefinierten Ressourcen in AWS CloudFormation beheben.
Kurzbeschreibung
Fehler bei benutzerdefinierten Ressourcen treten auf, weil bei der Ausführung der AWS Lambda-Funktion, die der Ressource zugeordnet ist, ein Problem aufgetreten ist. Die benutzerdefinierte Ressource sendet dann den Status FAILED an CloudFormation.
Eine benutzerdefinierte Ressource kann auch ausfallen, wenn CloudFormation innerhalb des erwarteten Zeitrahmens keine Antwort von der benutzerdefinierten Ressource erhält und ein Timeout auftritt.
Um die Probleme mit benutzerdefinierten Ressourcen zu beheben, führe entweder das AWSSupport-TroubleshootCFNCustomResource-Runbook aus oder behebe deinen CloudFormation-Stack manuell.
Bei benutzerdefinierten Lambda-Ressourcen überprüft das Runbook, ob Lambda den Amazon Simple Storage Service (Amazon S3) erreicht, um eine Antwort an CloudFormation zu senden. Die Antwort an CloudFormation überprüft die Lambda-Netzwerkkonfiguration und die Sicherheitsgruppen.
Lösung
Führe das AWSSupport-TroubleshootCFNCustomResource-Runbook aus
Bevor du beginnst, stelle sicher, dass dein AWS Identity and Access Management (IAM)-Benutzer oder deine Rolle über die erforderlichen IAM-Berechtigungen verfügt.
Gehe wie folgt vor, um die Automatisierung auszuführen:
- Öffne die AWS Systems Manager-Konsole.
- Wähle im Navigationsbereich Dokumente aus.
- Gib in der Suchleiste AWSSupport-TroubleshootCfnCustomResource ein.
- Wähle das Dokument AWSSupport-TroubleshootCfnCustomResource aus.
- Wähle Automatisierung ausführen aus.
- Gib für die Eingabeparameter Folgendes ein:
(Optional) AutomationAssumeRole. Gib den ARN der IAM-Rolle ein, der es Automation, einer Funktion von Systems Manager, ermöglicht, die Aktionen in deinem Namen auszuführen. Wenn du keine IAM-Rolle angibst, verwendet Automation die Berechtigungen des Benutzers, der das Runbook startet.
StackName. Gib den Namen des CloudFormation-Stacks ein, bei dem die benutzerdefinierte Ressource ausgefallen ist. - Wähle Ausführen aus.
- Im Abschnitt Ausgaben findest du die folgenden detaillierten Ergebnisse:
Im Schritt ValidateCloudFormationStack wird überprüft, ob der CloudFormation-Stack in demselben AWS-Konto und derselben AWS-Region vorhanden ist.
Im Schritt checkCustomResource wird der CloudFormation-Stack analysiert, die ausgefallene benutzerdefinierte Ressource überprüft und Informationen zur Fehlerbehebung für die ausgefallene benutzerdefinierte Ressource bereitgestellt.
Manuelles Beheben von Fehlern in deinem CloudFormation-Stack
Die Amazon CloudWatch Logs überprüfen
Führe die folgenden Schritte aus:
- Öffne die CloudFormation-Konsole.
- Wähle den ausgefallenen Stack aus und dann die Registerkarte Ressourcen, um die physische ID der Lambda-Funktion abzurufen, die der benutzerdefinierten Ressource zugeordnet ist.
- Wähle deine Lambda-Funktion aus.
- Wähle die Registerkarte Überwachen und dann CloudWatch Logs anzeigen aus.
Wenn die Lambda-Funktion während des CloudFormation-Rollbacks gelöscht wurde, enthält die Protokollgruppe möglicherweise immer noch die CloudWatch Logs.
Gehe wie folgt vor, um auf die Protokolle zuzugreifen:
- Öffne die CloudWatch-Konsole.
- Wähle im Navigationsbereich die Option Protokollgruppen aus.
- Führe im Suchfeld den folgenden Befehl aus:
/aws/lambda/LambdaPhysicalName
Hinweis: Ersetze LambdaPhysicalName durch den Namen deiner Lambda-Funktion.
Wenn du die Protokolle nicht finden kannst, schalte die Rollback-Funktion aus und stelle den Stack erneut bereit, um das Verhalten der Lambda-Funktion zu beheben.
Behebe mögliche Fehlerursachen
Den Status FAILED (FEHLGESCHLAGEN) beheben
Möglicherweise erhältst du die folgende Fehlermeldung:
„Received response status FAILED from custom resource. Message returned: <reason here>.“
Du erhältst diese Fehlermeldung, wenn die Lambda-Funktion, die der benutzerdefinierten Ressource zugeordnet ist, auf ein Problem gestoßen ist und eine Ausnahmebehandlungslogik angewendet wird.
Um dieses Problem zu beheben, überprüfe den Grund für den Ausfall, der in der Fehlermeldung und den CloudWatch Logs für Lambda enthalten ist.
CloudFormation erhält keine Antwort
Der Stack schlägt fehl, weil CloudFormation keine Antwort von der benutzerdefinierten Ressource erhält.
Gehe wie folgt vor, um dieses Problem zu beheben:
-
Stelle sicher, dass du das Modul cfn-response in der Lambda-Funktion deiner benutzerdefinierten Ressource korrekt verwendest, um eine Antwort an den CloudFormation-Stack zu senden.
-
Überprüfe die CloudWatch Logs, um festzustellen, ob bei der Ausführung des Codes Fehler auftreten.
-
Erhöhe die Timeout-Einstellung der Lambda-Funktion, sodass die Funktion genügend Zeit hat, um die Aufgabe abzuschließen. Die maximale Zeit, die du festlegen kannst, beträgt 15 Minuten.
-
Wenn sich deine Lambda-Funktion in einer Virtual Private Cloud (VPC) befindet, stelle sicher, dass sie sich in einem Subnetz befindet. Das Subnetz muss ausgehenden Verkehr über ein NAT-Gateway zulassen. Das Subnetz muss außerdem zu einem Amazon-S3-Endpunktzugriff weitergeleitet werden, damit benutzerdefinierte Ressourcen auf die vorsignierte Amazon-S3-URL zugreifen können.
-
Wenn eine Antwort nach einem Timeout gesendet wurde, überprüfe deine Lambda-Metriken auf eine hohe Anzahl gleichzeitiger Funktionsausführungen in derselben Region. Verwende die reservierte Gleichzeitigkeit für deine Funktion, um Timeouts zu reduzieren.
-
Wenn dein Stack bis zum Timeout der benutzerdefinierten Ressource im Status IN PROGRESS (IN BEARBEITUNG) bleibt, verwende cURL, um eine direkte HTTP-Anfrage zu stellen. Wenn du eine direkte Anfrage stellst, verhinderst du möglicherweise den Timeout.
Beispiel für einen curl-Befehl:curl -H 'Content-Type: ''' -X PUT -d '{ "Status": "SUCCESS", "PhysicalResourceId": "test-CloudWatchtrigger-1URTEVUHSKSKDFF", "StackId": "arn:aws:cloudformation:us-east-1:111122223333:stack/awsexamplecloudformation/33ad60e0-5f25-11e9-a734-0aa6b80efab2 ", "RequestId": "e2fc8f5c-0391-4a65-a645-7c695646739", "LogicalResourceId": "CloudWatchtrigger" }' 'https://cloudformation-custom-resource-response-useast1.s3.us-east-1.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A111122223333%3Astack/awsexamplecloudformation/33ad60e0-5f25-11e9-a734-0aa6b80efab2%7CMyCustomResource%7Ce2fc8f5c-0391-4a65-a645-7c695646739?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170313T0212304Z&X-Amz-SignedHeaders=host&X-Amz-Expires=7200&X-Amz-Credential=QWERTYUIOLASDFGBHNZCV%2F20190415%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dgvg36bh23mk44nj454bjb54689bg43r8v011uerehiubrjrug5689ghg94hb 'Hinweis: Um die Anfrage zu stellen, musst du die Details des Anforderungsobjekts angeben. Du findest die RequestID und die vorsignierte Amazon-S3-URL in deinen CloudWatch Logs. Für weitere Informationen siehe Wie lösche ich eine Lambda-gestützte benutzerdefinierte Ressource, die in CloudFormation im Status DELETE_FAILED oder im Status DELETE_IN_PROGRESS hängen bleibt?
Ähnliche Informationen
Ausführen einer einfachen Automatisierung (Konsole)
Einrichten der Automatisierung
- Themen
- Management & Governance
- Sprache
- Deutsch
Ähnliche Videos

