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

处于VPC中的AWS Lambda无法发送事件至Event Bus的解决咨询

解决VPC内Lambda跨账号向Event Bus发送事件的问题

核心原因

VPC内的Lambda默认无法直接访问AWS托管的Event Bus服务——Event Bus属于AWS公网服务范畴,VPC内Lambda若无公网出口或对应VPC端点,就无法建立连接;即便已配置VPC peering,该连接仅打通两个VPC的私网通信,不涉及AWS托管服务的访问路径。

可行解决方案

方案一:配置EventBridge VPC端点(推荐)

  • 创建EventBridge接口型VPC端点:在Lambda所在VPC中,通过AWS控制台或aws ec2 create-vpc-endpoint命令,创建指向com.amazonaws.<区域>.events的接口端点。需确保端点的安全组允许Lambda所在安全组的443端口出站流量。
  • 确认Lambda的VPC配置:保证Lambda已关联到该VPC的子网和安全组,且安全组允许向EventBridge端点发起443端口请求。
  • 配置跨账号Event Bus权限:目标账号的Event Bus需添加资源策略,允许Lambda所在账号的执行角色发送事件。示例策略:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<你的账号ID>:role/<Lambda执行角色ARN>"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events::<目标账号ID>:event-bus/<目标Event Bus名称>"
    }
  ]
}
  • Lambda代码指定目标Event Bus:调用PutEvents API时,明确将EventBusName设为目标账号的Event Bus ARN。

方案二:为Lambda配置公网访问路径

  • 部署NAT网关:在Lambda所在VPC的公网子网中创建NAT网关,并将Lambda所在子网的路由表配置0.0.0.0/0指向该NAT网关(公网子网需关联互联网网关)。
  • 配置安全组:允许Lambda所在安全组的443端口出站流量到公网。
  • 同方案一配置跨账号Event Bus权限,Lambda代码指定目标Event Bus ARN。

额外注意事项

  • VPC peering仅用于两个VPC的私网通信,无需针对该连接做额外配置来适配Event Bus访问。
  • 需确认Lambda执行角色已拥有events:PutEvents权限,且权限策略中包含目标Event Bus的ARN。

内容的提问来源于stack exchange,提问作者M Akin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:34:55