Der AWS-CustomResource-Konstrukt vereinfacht AWS-SDK-Aufrufe während der CloudFormation-Bereitstellung, die häufig für Aufgaben wie das Abrufen von Parameter-Store-Werten oder das Aufrufen von Lambda-Funktionen verwendet werden. Er verwendet eine Singleton-Lambda-Funktion, um SDK-Aufrufe während der CloudFormation-Lebenszyklusereignisse (ERSTELLEN, AKTUALISIEREN, LÖSCHEN) auszuführen und speichert die Antworten in S3. Wenn jedoch die aufgerufene Lambda-Funktion fehlschlägt, kann die CloudFormation-Bereitstellung unerwartet erfolgreich sein. Dies liegt daran, dass der Erfolg oder Misserfolg der Singleton-Lambda nur den Status des API-Aufrufs und nicht den der aufgerufenen Lambda-Funktion widerspiegelt. Um dies zu beheben, ersetzt ein benutzerdefinierter Anbieter die Standard-Singleton-Lambda. Dieser benutzerdefinierte Anbieter bietet, entweder über das Provider-Framework oder einen direkten Lambda-Ansatz, eine feinere Kontrolle über den Erfolg oder Misserfolg der Bereitstellung basierend auf dem Ergebnis der benutzerdefinierten Ressourcen-Lambda-Funktion. Das Provider-Framework vereinfacht die Antwortbehandlung, indem es Antworten automatisch an den S3-Bucket sendet; die direkte Lambda-Verarbeitung erfordert manuelle PUT-Anfragen an eine vorab unterzeichnete S3-URL. AWS empfiehlt das Provider-Framework. Benutzerdefinierte Ressourcen werden standardmäßig nur bei Änderungen der Eigenschaften während der Aktualisierung ausgeführt; ein Zeitstempel kann die Ausführung erzwingen. Die Provider-Lambda-Funktion wird bei allen Lebenszyklusereignissen ausgeführt und erfordert bedingte Logik innerhalb der Lambda-Funktion selbst. Eine sorgfältige Berücksichtigung der Lebenszyklusereignisse (ERSTELLEN, AKTUALISIEREN, LÖSCHEN) ist für ein ordnungsgemäßes Verhalten der Funktion von entscheidender Bedeutung.
dev.to
Dealing with CDK Custom Resources and failures.
Create attached notes ...