Для быстрой отладки я предлагаю использовать sls invoke local
. Это не будет использовать AWS лямбда-роль, но будет использовать AWS учетные данные, если они доступны в вашей среде.
Если у меня возникают проблемы с AWS ролями или разрешениями, я предлагаю использовать sls invoke
.
Вы можете передать тело JSON обоим sls invoke
и sls invoke local
:
sls invoke -f myFunctionName -d '{"Records":[{"messageId":"059f36b4-87a3-44ab-83d2-661975830a7d","receiptHandle":"AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...","body":"{\"functionArn\": \"arn:aws:lambda:us-west-2:377024778620:function:my-function-name\"}","attributes":{"ApproximateReceiveCount":"1","SentTimestamp":"1545082649183","SenderId":"AIDAIENQZJOLO23YVJ4VO","ApproximateFirstReceiveTimestamp":"1545082649185"},"messageAttributes":{},"md5OfBody":"098f6bcd4621d373cade4e832627b4f6","eventSource":"aws:sqs","eventSourceARN":"arn:aws:sqs:us-east-2:123456789012:my-queue","awsRegion":"us-east-2"}]}'
Я использую sls generate-event
для создания различных тел для различных AWS услуги:
sls generate-event -t aws:sqs -b '{"functionArn": "arn:aws:lambda:us-east-1:123456:function:ci-service-fakeError"}'
А затем направить вывод этого на вход sls invoke