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