【发布时间】:2019-01-28 01:58:11
【问题描述】:
我使用 Lambda 和 SQS 设置了一个小型无服务器应用程序。 在我的例子中,我希望每次消息被添加到SQS队列时触发一个lambda。
我的 serverless.yml 中的函数
functions:
collectGame:
handler: js/collect.collectGame
memorySize: 128
timeout: 10
events:
- sqs:
arn:
Fn::GetAtt:
- gameRequestQueue
- Arn
- http:
method: post
cors:
origin: "https://my-api-url.com"
path: get/game/{id}
private: true
request:
parameters:
paths:
id:true
我通过一次向队列发送 31 条消息来测试该过程,但意识到只有 9 个 Lambda 被执行(通过查看 cloudwatch 日志)。我查看了队列,可以确认它已被所有消息填充,并且在 9 个 Lambda 被触发后它是空的。
我希望有 31 次 Lambda 执行,但事实并非如此。有人知道消息未触发我的 Lambda 的潜在原因吗?
【问题讨论】:
-
您的 lambda 是否被多条消息调用?
-
您确定 Cloud Watch 中只有 9 个执行而不是 9 个日志组吗?
-
@ArtemArkhipov 我又试了一次,现在我看到总共 8 个日志组中有 11 个调用
标签: amazon-web-services aws-lambda amazon-sqs serverless