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 von einer benutzerdefinierten Ressource in einem anderen Konto nur aufrufen, wenn sich die Funktion und die 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.

Anmerkung: Wenn Sie eine Lambda-Funktion einer benutzerdefinierten Ressource zuordnen, ruft die benutzerdefinierte Ressource die Funktion jedes Mal auf, wenn sie erstellt, aktualisiert oder gelöscht wird. CloudFormation ruft eine Lambda-API auf, um alle Anforderungsdaten, wie Anforderungstyp und Ressourceneigenschaften, an die Funktion zu übergeben.

Behebung

**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.

Führen Sie den AWS CLI-Befehl add-permission in Ihrem Hauptkonto (Konto A) aus. Der Befehl gewährt der Lambda-Funktion Zugriff auf die benutzerdefinierte Ressource in einem anderen Konto (Konto B).

-oder-

Verwenden Sie die Ressource AWS::Lambda::Permission, um Konto B die Erlaubnis zu erteilen, die Lambda-Funktion in Konto A aufzurufen:

  1. Wenn eine Lambda-Funktion über einen Stack in Konto A erstellt wird, verwenden Sie die Ressource AWS::Lambda::Permission, um Konto B die Erlaubnis zu erteilen.
  2. Starten Sie in Konto B den AWS CloudFormation-Stack, der Ihre benutzerdefinierte Ressource enthält.
    Anmerkung: 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.
  3. 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

Zugriff auf Funktionen für andere Konten gewähren

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Jahren