如何从 lambda 触发 S3(不同区域)事件?

如何从 lambda 触发 S3(不同区域)事件?

我可以使用 S3- 相同区域创建 lambda 触发器。但是使用不同区域 S3 创建触发器时出现错误

The bucket imebuckt must be in the same region as arn:aws:lambda:ap-south-1::function:ProcessImage.

我该如何修复它?

答案1

S3 事件无法在不同区域触发 lambda。您可以做的例如:

  • 发送S3 事件SNS 话题或者SQS 队列并从该消息中触发目标区域中的 lambda。

  • 在同一区域触发 LambdaS3 事件并触发你的目标区域 Lambda从第一个 Lambda 开始。

  • 或者将上述两者混合使用 - S3 区域中的 Lambda 将消息发送到目标区域中的 SNS 主题或 SQS 队列您的目标 lambda 在哪里对其进行处理。

我会做类似的事情。希望有帮助 :)

答案2

以下可以是一个选项

S3(区域 1)--> SNS(区域 1)--> SQS(区域 2)--> Lambda(区域 2)

https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.html

答案3

我认为另一种解决方案是调用与触发器位于同一 s3 区域中的 Lambda,并在您首选的区域中创建另一个 Lambda,然后使用 Lambda 的函数 URL 发布有效负载。我认为这比 SES 到 SQS 更容易设置。我会亲自尝试一下。

相关内容