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

求助:CloudFormation配置SQS触发AWS Lambda函数失效问题

排查SQS触发Lambda未执行问题

你配置的CloudFormation模板中,SQS队列能正常接收消息但Lambda未触发,可按以下步骤排查:

1. 检查Lambda IAM角色权限

Lambda需要具备访问SQS队列的核心权限,确保LambdaIAMRole包含以下权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage",
                "sqs:DeleteMessage",
                "sqs:GetQueueAttributes"
            ],
            "Resource": "arn:aws:sqs:<区域>:<账号ID>:<你的队列名>"
        }
    ]
}

如果SQS队列启用了KMS服务器端加密,还需额外添加kms:Decrypt、kms:GenerateDataKey权限。

2. 验证VPC内Lambda的网络连通性

你的Lambda配置了VpcConfig,运行在VPC子网内,需确保网络可达:

  • 若使用私有子网:Lambda需通过NAT网关访问SQS公网端点,或创建SQS的VPC接口端点。无此配置的话,Lambda无法连接SQS。
  • 安全组规则:确认TestSecurityGroupId允许出站HTTPS(443端口)流量到SQS服务或对应的VPC端点。

3. 确认事件源映射是否存在

通过SAM模板配置的SQS触发器会自动创建Lambda事件源映射,可通过以下方式验证:

  • 登录Lambda控制台,查看目标函数的「触发器」标签,确认SQS队列已作为触发器存在。
  • 使用AWS CLI命令检查:
aws lambda list-event-source-mappings --function-name <你的Lambda函数名>

若映射不存在,重新部署CloudFormation栈并检查部署日志是否有错误。

4. 检查参数匹配与队列状态

  • 确认SQS的VisibilityTimeout(900秒)大于Lambda的Timeout(120秒):你的配置已满足该要求,无需调整。
  • 在SQS控制台查看「可用消息数」,确认消息处于可被读取的状态,未被其他进程占用。

附你的CloudFormation模板:

TestFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: abc/xxx/
      Handler: com.test.TestHandler::handleRequest
      Runtime: java11
      MemorySize: 512
      Timeout: 120
      FunctionName: !Join [ "-", [ !Ref TestPrefix, "TestFunction" ] ]
      Role: !Ref LambdaIAMRole
      VpcConfig:
        SecurityGroupIds:
          - !Ref TestSecurityGroupId
        SubnetIds: !Ref TestSubnetIds
      Events:
        MySQSEvent:
          Type: SQS
          Properties:
            Queue: !GetAtt TestQueue.Arn
            BatchSize: 1

TestQueue:
  Type: AWS::SQS::Queue
  Properties:
    QueueName: !Ref TestQueueName
    Enabled: true
    MessageRetentionPeriod: 300
    VisibilityTimeout: 900

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:57:41