Wie kann ich eine Lambda-Funktion, die in einem AWS-Konto erstellt wurde, mit einer benutzerdefinierten AWS CloudFormation-Ressource in einem anderen AWS-Konto verwenden?

Lesedauer: 2 Minute
0

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-

  1. 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.

  2. 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.

  1. 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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren