【问题标题】:No response from invoke container when running sam local invoke运行 sam local invoke 时调用容器没有响应
【发布时间】: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 相关的东西。

我看到的唯一输出是这个(即使是 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


【解决方案1】:

我遇到了类似的问题,并通过在 [template.yaml] 文件中将“超时”从 3 增加到 10 来解决它。 当您导入(或需要)多个 npm 包时,加载时间可能会很长,可能 3 秒还不够。只是我的猜测

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2020-04-07
    • 2022-12-08
    • 2020-08-26
    • 2021-05-26
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多