https://www.terraform.io/docs/configuration/functions/formatdate.html上面是这个函数的文档,我用它在SageMaker批处理转换作业的名称上添加了一个时间戳,它将从stepfunction状态机触发:
locals {
timestamp = formatdate("YYYYMMDDhhmmss", timestamp())
}
在stepfunction地形文件中:
definition = templatefile("stepfuntion.json",
{
xxx
timestamp = local.timestamp
)
在";stepfuntion.json":
{...
"TransformJobName": "jobname-${timestamp}",
}
},
"End": true
}
}
}
具体地在"TransformJobName": "jobname-${timestamp}"
中定义作业名称,我应用了两次地形,上午10点和11点,但第二次它生成了与第一次相同的时间戳,我是不是遗漏了什么?我以为这个函数会生成实时时间戳。我已经挣扎了一上午了,非常感谢。
工作非常好,我使用了问题中描述的您的代码和模板文件stepfuction.json
# main.tf
locals {
current = formatdate("YYYYMMDDhhmmss",timestamp())
}
output "tempasda"{
value = templatefile("task.json", {timestamp = local.current, model_name="mymodel"})
}
以及相应的输出
$ terraform apply -auto-approve |grep TransformJobName
"TransformJobName": "jobname-20210106134614",
$ terraform apply -auto-approve |grep TransformJobName
"TransformJobName": "jobname-20210106134615",
$ terraform apply -auto-approve |grep TransformJobName
"TransformJobName": "jobname-20210106134617",
$ terraform apply -auto-approve |grep TransformJobName
"TransformJobName": "jobname-20210106134618",
terrform版本使用0.13.x和0.14.x测试