Verwenden von API Gateway zum Veröffentlichen von SNS-Themen / Multi-Lambda-Funktion mit API Gateway
Im Moment ist meine Anforderung, wann immer ich Daten über die API erhalte, diese an 2-3 verschiedenen Stellen zu speichern (z. B. in meiner eigenen Datenbank, in einem BI-Service und manchmal auch in einer Protokollierungsdatenbank).
Ich weiß nicht, ob es möglich ist, eine einzelne Ressource und eine einzelne Methode in mehrere Lambda-Funktionen zu binden. Mein alternativer Ansatz war also, da ich bereits weiß, wie mehrere Lambda-Funktionen durch Abonnieren des SNS-Themas ausgelöst werden, dass der Rest einfach sein wird, wenn ich das SNS-Thema vom API-Gateway aus irgendwie veröffentlichen kann. Mein aktuelles Denken ist etwas unten:
Aber das Problem ist, dass ich vom API-Gateway aus keine Veröffentlichung im SNS-Thema durchführen kann. Ich erhalte Fehler wieTopicArn or TargetArn Reason: no value for required parameter
.
Mein Ansatz ist, ein normales SNS-Thema zu erstellen. Erstellen Sie dann eine spezielle Rollenrichtlinie wie folgt:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "StmtXXXXXXXXXXX",
"Effect": "Allow",
"Action": [
"sns:Publish",
"sns:Subscribe",
"sns:Unsubscribe"
],
"Resource": [
"SNS-TOPIC-ARN"
]
}
]
}
Dann eine API mit der POST / GET-Methode erstellen (ich habe beides ausprobiert) und das SNS-Thema als AWS Service Proxy und die Rolle als Ausführungsrolle hinzugefügt.