Ich möchte eine AWS Lambda-Funktion in einem Konto erstellen und diese Funktion dann über eine benutzerdefinierte AWS CloudFormation-Ressource in einem anderen Konto aufrufen.
Kurzbeschreibung
Sie können eine Lambda-Funktion nur dann von einer benutzerdefinierten Ressource in einem anderen Konto aus aufrufen, wenn sich die Lambda-Funktion und die benutzerdefinierte Ressource in derselben AWS-Region befinden. Die ServiceToken-Eigenschaft von AWS::CloudFormation::CustomResource muss sich in derselben Region befinden, in der Sie Ihren AWS CloudFormation-Stack erstellt haben. Sie müssen eine ressourcenbasierte Richtlinie verwenden, um den Konten mit Ihren benutzerdefinierten Ressourcen die Erlaubnis zu gewähren, Ihre Lambda-Funktion aufzurufen.
**Hinweis:**Wenn Sie eine Lambda-Funktion mit einer benutzerdefinierten Ressource verknüpfen, wird die Funktion immer dann aufgerufen, wenn die benutzerdefinierte Ressource erstellt, aktualisiert oder gelöscht wird. AWS CloudFormation ruft eine Lambda-API auf, um die Funktion aufzurufen und alle Anforderungsdaten an die Funktion zu übergeben. Zu den Anforderungsdaten gehören beispielsweise der Anforderungstyp und die Ressourceneigenschaften.
Behebung
**Hinweis:**Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.
Um Ihrer Lambda-Funktion von einem anderen Konto (Konto B) aus Zugriff auf Ihre benutzerdefinierte Ressource zu gewähren, führen Sie den AWS-CLI-Befehl add-permission in Ihrem Hauptkonto (Konto A) aus.
-oder-
-
Wenn eine Lambda-Funktion über einen Stack in Konto A erstellt wird, verwenden Sie die Ressource AWS::Lambda::Permission, um Konto B die Berechtigung zu gewähren.
-
Starten Sie in Konto B den AWS CloudFormation-Stack, der Ihre benutzerdefinierte Ressource enthält.
**Hinweis:**Stellen Sie sicher, dass das ServiceToken auf den Amazon-Ressourcennamen (ARN) der Lambda-Funktion von Konto A verweist. Fügen Sie alle zusätzlichen Eigenschaften hinzu, die als Eingabe an die benutzerdefinierte Ressource gesendet werden sollen.
- Verwenden Sie Amazon CloudWatch Logs, um zu bestätigen, dass Ihre benutzerdefinierte Ressource von Konto B Ihre Lambda-Funktion in Konto A aufgerufen hat.
Ähnliche Informationen
Eigenschaften
Zugriff auf Funktionen für andere Konten gewähren