我试图找出在本地调试lambda代码的方法。当前,使用无服务器框架和Visual Studio Code IDE。
该lambda代码在AWS lambda远程控制台中运行良好,但是每当需要调试时,如何使用附加的lambda执行角色在本地测试python代码。我确实有示例事件和数据库凭据。
lambda代码正在使用boto3访问AWS资源,并将lambda层与python软件包一起使用。
一些修改和代码更改最少的建议?无服务器调用本地?
为了进行快速调试,建议使用sls invoke local
。这将不会使用AWS Lambda角色,但是会在您的环境中使用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
的输入中>