【发布时间】:2022-10-07 19:52:08
【问题描述】:
试图在本地测试一个在 AWS 中运行良好的基本 lambda,但我不断得到
No response from invoke container for MyLambdaXXXXXXXX
'tsc' 和 'synth' 运行良好,我得到了正确的 cdk.out
调用命令是
sam local invoke --region us-east-1 --env-vars .env.json -t ./cdk.out/my-project.template.json -e events/example.event.json MyLambdaXXXXXXXX
我在下面列出的几个类似问题中没有找到 api 或任何与 docker 相关的东西。
- No response from invoke container when running sam local
- No response from invoke container for FunctionName
- https://github.com/aws/aws-sam-cli/issues/2837
我看到的唯一输出是这个(即使是 lambda 的第一行也没有日志)
Invoking index.execute (nodejs14.x)
Skip pulling image and use local one: public.ecr.aws/sam/emulation-nodejs14.x:rapid-1.46.0-x86_64.
Mounting /path-to-my-project/my-project/cdk.out/asset.aaaaa9999999cd5a9f38e9c4e503cc9c9bdf8ccdc8f9999991b12b6161e99999 as /var/task:ro,delegated inside runtime container
No response from invoke container for MyLambdaXXXXXXXX
Process finished with exit code 0
如果重要的话,我的 lambda 处理程序结构是异步的
export const execute = async (sqsEvent: SQSEvent): Promise<PutEventsCommandOutput> => {
await someAsyncStuffWithDocumentDB()
}
我正在使用带有这样捆绑的NodejsFunction cdk
bundling: {
minify: true,
sourceMap: true,
externalModules: ['aws-lambda', 'aws-sdk'],
loader: { '.pem': 'file' }, // cert for DocumentDB
},
【问题讨论】:
-
您是否在 Lambda 函数中使用任何层?我遇到了一个非常相似的错误,从我的 template.yaml 中删除 Layers 参数解决了这个问题。否则,在这里查看您的模板文件也可能会有所帮助。
-
不(虽然我计划在未来)。现在我们相信这是我的电脑特有的东西(在 12.3.1 上运行 macOS)。其他人在运行我的代码时没有同样的问题。如果我继续尝试,它有时会起作用,所以我认为 lambda 中可能存在一些异步错误导致它(我找不到任何但仍在寻找)。当我使入口点方法不是异步时,它运行良好(我需要异步,但它只是为了进行健全性测试)。
标签: aws-lambda aws-cdk aws-sam-cli