Ho seguito il seguente post del blog da Amazon (scenario 3: attivazione di una funzione Lambda da una notifica bucket Amazon S3 in un altro account) sull'autorizzazione delle funzioni Lambda per vari usi. Vorrei configurare una funzione Lambda per accettare i messaggi SNS da account esterni (esterni all'acct con la funzione lambda).Richiamare Lambda utilizzando SNS dall'account esterno
https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/
Mi aspettavo di aggiungere l'autorizzazione per richiamare la funzione in remoto come segue:
$ aws lambda add-permission \
--function-name MyFunction \
--region us-west-2 \
--statement-id Id-123 \
--action "lambda:InvokeFunction" \
--principal sns.amazonaws.com \
--source-arn arn:aws:sns:::<topic name> \
--source-account <account number> \
--profile adminuser
Allora ho tentato di andare al mio argomento SNS e impostare Lambda come endpoint, e digitare l'ARN remoto per la funzione lambda nel primo account. Questo non funziona così bene, come il punto finale si aspetta un ARN per una funzione nel conto ...
Plan B: Prova a creare la sottoscrizione tramite la CLI per aggirare la limitazione nella console ...
aws sns --profile adminuser \
--region us-west-2 subscribe
--topic-arn arn:aws:sns:us-west-2:<account #>:<topic name>
--protocol lambda
--notification-endpoint arn:aws:lambda:us-west-2:<account id>:function:<lambda function name>
risposta:
A client error (AuthorizationError) occurred when calling the Subscribe operation: The account <account id> is not the owner of the lambda function arn:aws:lambda:us-west-2:<account id>:function:<function name>
nessuno è stato in grado di richiamare una funzione lambda da uno SNS "remoti" a un altro account? Sono un po 'perplesso su dove forse ho sbagliato ... Sulla base della nota nel post del blog, mi aspettavo uno SNS remota al lavoro:
Note: Amazon SNS (Simple Notification Service) events sent to Lambda works the same way, with “sns.amazonaws.com” replacing “s3.amazonaws.com” as the principal.
Hai trovato e risolto? –
No, ancora bloccato qui purtroppo. – CloudTreading