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

Serverless配置带时区的定时Lambda:添加method:scheduler后无触发

使用Serverless框架配置AWS Scheduler触发Lambda的问题

配置代码

runDailyBatch:
  handler: src/handlerRunDailyBatch.handler
  timeout: 20
  reservedConcurrency: 1
  memorySize: 128
  events:
    # Min, Hr, Day-of-month, Month, Day-of-week, Year
    - schedule:
        name: "api-data_pipeline_runner-${opt:stage}-daily"
        method: scheduler
        rate: cron(*/3 * * * ? *)
        # TODO: rate: cron(10 2 * * 1-6 *)
        timezone: Europe/London
        input:
          cause: 'daily'
  alarms:
    - name: functionErrors
      nameTemplate: "$[functionName]_function_errors"
  iamRoleStatements:
    - Effect: Allow
      Action:
        - states:StartExecution
      Resource: ${self:resources.Outputs.RunBatchStateMachine.Value}
  lambdaInsights: true

问题描述

移除method: scheduler和timezone元素后,函数可正常运行,但进入夏令时(DST)时执行时间会出错,不符合需求(当前每3分钟执行仅为测试用例)。按照Serverless官方文档配置使用AWS::Scheduler::Schedule后,仅能在EventBridge中看到调度记录,Lambda无触发且从未执行。请问遗漏了什么配置项?是否是权限问题?若为权限问题,为何没有任何报错信息?

问题排查与解决方法
  • 权限缺失是核心原因:使用AWS Scheduler(而非旧版EventBridge Schedule)时,Scheduler服务需要单独的权限来触发Lambda函数。当前配置的IAM角色仅允许调用Step Functions状态机,没有赋予Scheduler调用Lambda的权限。另外,Scheduler的权限问题默认不会在Lambda的日志中显示,需要到Scheduler控制台查看执行记录,或者检查CloudWatch中对应的Scheduler日志组才能发现错误。
    需补充的IAM规则:

    iamRoleStatements:
      - Effect: Allow
        Action:
          - lambda:InvokeFunction
        Resource: ${self:functions.runDailyBatch.arn}
    

    也可以用CloudFormation引用方式:!GetAtt [runDailyBatchLambdaFunction, Arn],确保资源路径正确指向当前Lambda函数的ARN。

  • 确认Scheduler目标配置正确性:启用method: scheduler后,Serverless会生成AWS::Scheduler::Schedule资源,需检查CloudFormation控制台中该资源的TargetArn字段是否正确指向你的Lambda函数ARN。若变量引用错误,会导致Scheduler无法找到目标函数,自然不会触发执行。

  • 保留时区配置的必要性:旧版EventBridge Schedule的时区处理逻辑存在夏令时适配问题,而AWS Scheduler对时区的支持更完善,因此必须保留method: scheduler和timezone配置才能解决夏令时执行时间错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:12:11