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

Serverless框架下SQS无法向EventBridge发送消息排查

问题分析与解决方案

你遗漏了SQS队列的EventBridge事件通知启用配置——默认情况下SQS不会自动将消息事件转发到EventBridge,必须显式开启该功能。

1. 开启SQS的EventBridge事件支持

在resources下的MySQSMessageQueue配置中,添加EventBridgeEnabled: true属性,这是核心缺失项:

resources:
  Resources:
    #SQS Queue
    MySQSMessageQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: my-sqs-message-dev
        EventBridgeEnabled: true # 新增该行,开启SQS到EventBridge的事件转发

2. 优化EventBridge事件模式(可选)

你的sendEmail函数事件模式已基本正确,可补充detail-type字段来精准匹配SQS消息事件:

functions:
  sendEmail:
    handler: ./src/index.sendEmail
    events:
      - eventBridge:
          pattern:
            source:
              - 'aws.sqs'
            detail-type:
              - 'SQS Message Sent' # 新增该行,明确匹配SQS消息发送事件
            resources:
              - !GetAtt MySQSMessageQueue.Arn

3. 验证IAM权限(按需补充)

开启EventBridgeEnabled后AWS会自动配置基础权限,若后续遇到权限报错,可在provider的iamRoleStatements中补充EventBridge相关权限:

provider:
  # ... 其他原有配置
  iamRoleStatements:
      - Action:
          - sqs:SendMessage
        Resource: 
          !GetAtt MySQSMessageQueue.Arn
      - Action:
          - events:PutEvents
        Resource: "*" # 允许SQS向EventBridge推送事件

完成配置后重新部署服务,SQS收到消息时就会自动将事件转发到EventBridge,进而触发sendEmail Lambda函数。

内容的提问来源于stack exchange,提问作者Ninja-aman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:46:03