以IAM角色权限在本地运行lambda python代码

问题描述 投票:0回答:1

我试图找出在本地调试lambda代码的方法。当前,使用无服务器框架和Visual Studio Code IDE。

该lambda代码在AWS lambda远程控制台中运行良好,但是每当需要调试时,如何使用附加的lambda执行角色在本地测试python代码。我确实有示例事件和数据库凭据。

lambda代码正在使用boto3访问AWS资源,并将lambda层与python软件包一起使用。

一些修改和代码更改最少的建议?无服务器调用本地?

python amazon-web-services debugging aws-lambda local
1个回答
1
投票

为了进行快速调试,建议使用sls invoke local。这将不会使用AWS Lambda角色,但是会在您的环境中使用AWS凭据(如果可用)。

[如果我在使用AWS角色或权限时遇到问题,建议使用sls invoke

您可以将JSON正文同时传递给sls invokesls 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的输入中>

© www.soinside.com 2019 - 2024. All rights reserved.