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

Terraform配置aws_cloudwatch_event_rule的cron schedule_expression报错如何解决

报错原因分析
  • 首次报错:未将cron(xxx)整体作为字符串包裹,Terraform将cron()识别为原生函数调用,试图解析括号内空格分隔的内容为函数入参,因此抛出需要逗号分隔参数的语法错误。
  • 二次报错:存在两个问题:
    1. 字符串赋值语法错误,cron"(30 18 * * * *)"不符合Terraform的字符串书写规则
    2. cron表达式不符合AWS EventBridge的格式要求:AWS EventBridge规定cron表达式的日和星期字段不能同时设为*,必须将其中一个设为?表示不指定该维度。
正确配置示例

如果需求是每天UTC时间18:30触发规则,正确写法如下:

resource "aws_cloudwatch_event_rule" "ec2_off" {
  name        = "ec2-off-${var.environment}"
  description = "Trigger EC2 schedule lambda"
  schedule_expression = "cron(30 18 * * ? *)"
}

AWS EventBridge cron表达式字段顺序(从左到右):
分钟(0-59) 小时(0-23,UTC时区) 日(1-31) 月(1-12或JAN-DEC) 星期(1-7或SUN-SAT,1代表周日) 年(可选,取值范围1970-2199)

额外注意:EventBridge使用UTC时区,若需要对应国内时区请自行换算,例如北京时间为UTC+8,若需北京时间每天凌晨1点触发,对应UTC时间为前一天的17点,cron表达式写为cron(0 17 * * ? *)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:54:04