【问题标题】:How to trigger cross region Lambda function using S3 event notification when S3 and Lambda are in different regions当 S3 和 Lambda 位于不同区域时,如何使用 S3 事件通知触发跨区域 Lambda 函数
【发布时间】:2022-01-02 22:55:47
【问题描述】:

场景:

  1. 我们在区域 1(例如俄勒冈)有一个 S3 存储桶
  2. 我们在区域 2(例如法兰克福)有一个 Lambda 函数
  3. 我们已将 S3 配置为在将对象添加到存储桶时发送事件通知

问题:

我们需要使用区域 1 中生成的 S3 事件通知来调用区域 2 中的 Lambda。 我们知道允许使用 Lambda 进行跨账户 S3 事件配置。但是如何实现跨Region事件和lambda调用!

我们的想法:

我们曾考虑在 S3 和 Lambda 之间使用 SNS,但不确定是否有其他可用的替代方案,或者这是唯一的方法。任何帮助表示赞赏。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda amazon-sns


    【解决方案1】:

    如你所说,最直接的方法是在中间使用 SNS:

    1. Region1 S3 通知有一个 Region1 SNS 主题目标
    2. Region2 Lambda 有一个 cross-region subscription 到 Region1 SNS 主题

    S3 不能直接跨地域发送通知。

    您也可以让 S3 将创建的项目复制到 Region2,此时 Region2 S3 可以直接通知 Region2 Lambda,如果项目很小且延迟不是大问题,这可能会起作用。

    【讨论】:

    • 感谢@fedonev,由于合规性原因,我认为复制不是一种选择,但还有一个问题,我的 Lambda 可以订阅的 SNS 数量是否有限制?我的意思是,如果我在 10 个不同的区域创建 S3 存储桶,是否可以将所有 S3 事件路由到一个 Lambda?
    • 很高兴为您提供帮助! lambda 订阅中没有 documented limit
    猜你喜欢
    • 2020-12-02
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2020-06-17
    • 1970-01-01
    • 2018-06-23
    • 2021-01-24
    相关资源
    最近更新 更多