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

EventBridge规则未触发Lambda函数,CloudFormation部署后无执行

解决EventBridge触发Lambda无效的问题

核心问题分析

  • 调度表达式与预期不符:你配置的cron(55 * * * ? *)是每小时55分触发,而非预期的33分
  • 硬编码ARN未关联栈内资源:模板中直接使用function.arn、event.arn这类占位符,CloudFormation无法识别并关联实际创建的Lambda函数和EventBridge规则
  • YAML缩进错误:原模板中部分资源的缩进不符合YAML规范,会导致配置解析失败

修正后的完整CloudFormation模板

Resources:
  LambdaFunction:
    Type: AWS::Lambda::Function
    Properties:
      Code:
        S3Bucket: bucketname
        S3Key: lambda_function.py.zip
      Runtime: python3.9
      FunctionName: WebScrabber
      Role: !Sub "${LambdaExecutionRole.Arn}" # 若使用现有角色可直接替换为实际ARN
      Layers:
        - layer.arn # 替换为实际层ARN
      Timeout: 100
      Handler: lambda_function.lambda_handler

  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole # 基础执行权限,按需调整

  ScheduledRule:
    Type: AWS::Events::Rule
    Properties:
      ScheduleExpression: cron(33 * * * ? *) # 修正为每小时33分触发
      State: ENABLED
      Targets:
        - Arn: !GetAtt LambdaFunction.Arn
          Id: TargetFunctionV1

  EventsPermission:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !GetAtt LambdaFunction.Arn
      Action: lambda:InvokeFunction
      Principal: events.amazonaws.com
      SourceArn: !GetAtt ScheduledRule.Arn

关键修改说明

  • 修正调度表达式:将cron(55 * * * ? *)改为cron(33 * * * ? *),匹配你预期的每小时33分触发逻辑
  • 使用内部资源引用:
    • Lambda目标ARN用!GetAtt LambdaFunction.Arn引用栈内创建的Lambda函数
    • 权限规则的SourceArn用!GetAtt ScheduledRule.Arn引用栈内的EventBridge规则,确保权限仅针对当前规则生效
  • 修复YAML缩进:统一所有资源属性的缩进层级,保证CloudFormation能正确解析配置

额外检查项

  • 确认Lambda执行角色拥有必要的权限,CloudFormation栈的执行角色具备创建所有资源的权限
  • 查看CloudFormation栈的事件日志,确认所有资源都创建成功无报错
  • 进入EventBridge控制台,检查规则状态为ENABLED且目标正确关联Lambda
  • 查看Lambda的CloudWatch日志,确认是否有触发记录或错误信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:34