如何使用Terraform为AWS Data Pipeline配置每日凌晨12:30调度?
在Terraform中配置AWS Data Pipeline每日凌晨12:30调度触发
要在Terraform中实现AWS Data Pipeline的每日凌晨12:30调度,核心是通过aws_datapipeline_pipeline资源的pipeline_objects字段定义调度规则,以下是具体实现方案:
核心配置逻辑
AWS Data Pipeline的调度需通过Schedule类型的管道对象配置,结合cron表达式精确指定触发时间。默认调度时间为UTC时区,若需适配本地时区需先转换为UTC时间再调整表达式。
完整Terraform代码示例
resource "aws_datapipeline_pipeline" "daily_1230_pipeline" { name = "daily-1230-execution-pipeline" unique_id = "daily-1230-pipeline-uid" pipeline_objects = [ # 管道默认配置 { id = "Default" name = "Default" fields = [{ key = "workerGroup", string_value = "default-worker-group" }] }, # 每日凌晨12:30(UTC)调度规则 { id = "Daily1230Schedule" name = "Daily1230Schedule" fields = [ { key = "type", string_value = "Schedule" }, { key = "scheduleType", string_value = "cron" }, # cron表达式格式:分钟 小时 日 月 星期 年 { key = "cronExpression", string_value = "30 0 * * ? *" }, # 调度起始时间(ISO 8601 UTC格式) { key = "startDateTime", string_value = "2024-01-01T00:30:00Z" } ] }, # 关联调度的任务示例(Shell命令任务) { id = "DailyProcessingTask" name = "DailyProcessingTask" fields = [ { key = "type", string_value = "ShellCommandActivity" }, { key = "schedule", ref_value = "Daily1230Schedule" }, { key = "command", string_value = "echo 'Daily task executed at 00:30 UTC'" }, { key = "runsOn", ref_value = "TaskEc2Instance" } ] }, # 任务运行的EC2资源配置 { id = "TaskEc2Instance" name = "TaskEc2Instance" fields = [ { key = "type", string_value = "Ec2Resource" }, { key = "instanceType", string_value = "t2.micro" }, { key = "securityGroups", string_value = "your-security-group-id" }, { key = "region", string_value = "us-east-1" } ] } ] }
关键参数说明
scheduleType:设为cron以使用cron表达式精准控制时间cronExpression:30 0 * * ? *表示每日UTC时间0点30分触发。若需适配本地时区(如北京时间12:30),需转换为UTC时间(北京时间12:30对应UTC前一天16:30),表达式改为30 16 * * ? *startDateTime:设置调度首次执行的起始时间,需遵循ISO 8601 UTC格式- 任务关联:通过
schedule字段引用调度对象的ID,确保任务按指定规则触发
内容的提问来源于stack exchange,提问作者stackdisplay
相关产品推荐
相关产品推荐

