You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

当S3与Lambda分属不同区域时如何通过S3事件通知触发跨区域Lambda函数

跨区域S3事件触发Lambda实现方案

AWS S3原生事件通知仅支持绑定同区域的Lambda、SNS、SQS作为目标,无法直接配置跨区域Lambda触发,以下是3种可落地的实现方案:


方案1:同区域SNS中转(最通用的轻量方案,即你提到的思路)

这是生产环境最常用的实现方式,步骤如下:

  • 在S3所在的区域1创建SNS标准主题
  • 配置S3存储桶的事件通知规则,触发目标选择刚创建的区域1 SNS主题,同时配置SNS主题的资源策略,允许S3存储桶向主题推送消息
  • 为区域2的目标Lambda配置该SNS主题的订阅,AWS SNS标准主题原生支持跨区域订阅Lambda
  • 补充配置SNS主题的资源策略,允许区域2的Lambda消费消息,同时给Lambda的执行角色添加SNS消息触发的相关权限
    优缺点:架构简洁、运维成本极低,仅增加几十毫秒的事件中转延迟,适配绝大多数常规业务场景

方案2:同区域中转Lambda(适合需要自定义事件处理的场景)

如果需要在事件转发前做过滤、格式转换、限流等自定义逻辑,可以用该方案:

  • 在S3所在的区域1部署一个极简的中转Lambda
  • 配置S3事件通知直接触发该同区域中转Lambda
  • 在中转Lambda的代码中调用AWS SDK的lambda.invoke接口,指定区域参数为区域2,触发目标Lambda即可
  • 给中转Lambda的执行角色添加lambda:Invoke权限,资源指定为区域2目标Lambda的ARN
    优缺点:灵活性最高,可支持各种自定义事件处理逻辑,资源成本极低,仅需要为中转Lambda的毫秒级运行时间付费

方案3:EventBridge跨区域事件总线(适合企业级统一事件路由场景)

如果你的企业已经在使用EventBridge做全栈事件统一管理,可以采用该方案:

  • 开启区域1S3存储桶的EventBridge集成,S3会自动将所有存储桶事件推送到同区域的默认EventBridge总线
  • 在区域1的EventBridge上配置事件规则,匹配S3对象创建事件,目标选择跨区域的区域2 EventBridge自定义总线
  • 在区域2的EventBridge自定义总线上配置规则,匹配对应S3事件后触发同区域的目标Lambda
    优缺点:可扩展性极强,适合多事件源、多目标的复杂路由场景,但架构复杂度和成本高于前两种方案

通用注意事项

所有跨区域调用都会产生跨区域流量费用,可根据业务的延迟要求、成本预算选择对应方案即可。

内容的提问来源于stack exchange,提问作者Darshan Ambhaikar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:06:10