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

Serverless框架下能否从SSM读取值设置EventBridge的ScheduleExpression

解答

可以在serverless.yml中实现该需求,Serverless框架原生支持读取AWS SSM Parameter Store的参数值,可直接用于拼接EventBridge调度规则的时间表达式。

具体实现步骤

直接使用${ssm:参数完整路径}语法引用你定义的SSM参数,结合Serverless内置的算术运算能力,即可直接生成2倍间隔的调度规则,修改后的函数配置示例如下:

heartbeat-check:
  handler: groupconsultation/heartbeatcheck.handler
  description: ${self:custom.gitVersion}
  timeout: 15
  memorySize: 1536
  package:
    include:
      - groupconsultation/heartbeatcheck.js
      - shared/*
      - newrelic-lambda-wrapper.js
  events:
    - eventBridge:
       enabled: true
       # 读取SSM参数值乘以2作为调度间隔
       schedule: rate(${${ssm:/${file(vars.js):values.environmentName}/lambda/HeartbeatInterval} * 2} minutes)
resources:
 Resources:
    GCHeartbeatInterval:
      Type: AWS::SSM::Parameter
      Properties:
        Name: /${file(vars.js):values.environmentName}/lambda/HeartbeatInterval
        Type: String
        Value: 1  
        Description: value in minute. need to convert it to seconds/milliseconds

注意事项

  • 部署使用的AWS账号需要具备ssm:GetParameter权限,才能在部署阶段正常读取SSM参数值
  • SSM参数值是在部署阶段解析的,如果你后续修改了SSM里的间隔数值,需要重新执行serverless deploy才能更新EventBridge的调度规则
  • 如果你需要无需重新部署即可动态调整调度间隔,可以调整实现逻辑:将EventBridge的调度间隔设为1分钟的固定值,Lambda运行时主动拉取SSM参数判断是否达到2倍心跳间隔,满足条件再执行业务逻辑即可,该方案会产生少量无效Lambda调用,可根据实际场景选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:15:03