在 SQS 和 ECS 中使用 Eventbridge 管道时如何处理错误?

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

当使用 Eventbridge 管道并将 SQS 队列作为源、ECS 任务作为目标时:应该如何处理错误处理?

据我了解,由于Eventbridge将对ECS进行异步API调用(以使用消息运行任务),因此Eventbridge将直接从SQS队列中删除该消息,而无需等待。

这意味着如果ECS任务在处理消息时遇到错误,消息将会丢失。

关于此用例有任何最佳实践吗?

谢谢!

amazon-ecs amazon-sqs aws-fargate aws-event-bridge
1个回答
0
投票

披露:EventBridge PM 回答

正确,通过ECS的调用是异步的。 EventBridge 等待 ECS 控制平面的成功响应,然后返回。处理期间的错误不会从 EventBridge 端重试。

今天,为了保证处理(通过重试和 DLQ),您可以:

  1. 传送到 SQS 队列并在容器中进行轮询
  2. 通过 ECS events 和 EventBridge 捕获 !=0 退出代码以重试
  3. 在中间使用 Step Function 工作流程
  4. 在容器中公开私有 HTTPS 端点,并引入 Lambda 函数以将事件传递到该容器端点(通过 VPC 附加的 Lambda 函数)
  5. 在容器中公开公共* HTTPS 端点,并使用 API 目标通过 HTTPS 进行交付

* 注意:如果您有兴趣通过 HTTPS 将事件传送到私有 (VPC) 目标,请联系我们。聊天很开心。

请告诉我这是否有帮助

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