同步调用lambda时,如何向DLQ添加失败信息?
How to add failure messages to DLQ when lambda is invoked synchronously?
我有类似的结构
SQS -> Lambda -> DLQ
当像下面这样异步调用 Lambda 时,失败消息将成功添加到 DLQ。
$ aws lambda invoke --function-name my-function --invocation-type Event --payload '{ "key": "value" }' response.json
但是当 lambda 在向 SQS 添加新消息时被触发然后失败时,消息不会存储在 DLQ 中。
我发现当新消息发布到 SQS 时触发的事件本质上是同步的。
Lambda polls the queue and invokes your function synchronously with an
event that contains queue messages.
参考 - https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html.
所以我想要-
- SQS 事件触发器异步调用 lambda
或
- 消息也会在同步调用 Lambda 时存储在 DLQ 中。
- DLQ 不用于存储错误消息,而是用于存储失败的事件,稍后可以再次处理。
- CloudWatch 用于存储和显示 Lambda 和任何其他 AWS 服务的日志(包括错误)。
- SQS 触发 Lambda 的想法是,如果 Lambda 失败,事件将在稍后由 Lambda 再次处理。
它与 DLQ 的想法相同,但实现方式不同。
我有类似的结构
SQS -> Lambda -> DLQ
当像下面这样异步调用 Lambda 时,失败消息将成功添加到 DLQ。
$ aws lambda invoke --function-name my-function --invocation-type Event --payload '{ "key": "value" }' response.json
但是当 lambda 在向 SQS 添加新消息时被触发然后失败时,消息不会存储在 DLQ 中。
我发现当新消息发布到 SQS 时触发的事件本质上是同步的。
Lambda polls the queue and invokes your function synchronously with an event that contains queue messages.
参考 - https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html.
所以我想要-
- SQS 事件触发器异步调用 lambda
或
- 消息也会在同步调用 Lambda 时存储在 DLQ 中。
- DLQ 不用于存储错误消息,而是用于存储失败的事件,稍后可以再次处理。
- CloudWatch 用于存储和显示 Lambda 和任何其他 AWS 服务的日志(包括错误)。
- SQS 触发 Lambda 的想法是,如果 Lambda 失败,事件将在稍后由 Lambda 再次处理。
它与 DLQ 的想法相同,但实现方式不同。