我想为我的ec2实例名称引入一个简单的时间戳
tags = {
"Name" = "windows server 2012 ${var.env} - ${formatdate("YYYYMMDD", timestamp())}"
}
但是当我运行terraform validate
时,
我明白了
Error: aws_instance.convertor: 1 error(s) occurred:
* aws_instance.convertor: 1:33: unknown function called: formatdate in:
windows server 2012 ${var.env} - ${formatdate("YYYYMMDD", timestamp())}
显然,formatdate在我的terraform版本(v0.11.7)中不可用。如何在0.11.7的HCL中获得相同的结果?
答案 0 :(得分:1)
formatdate函数仅在terraform v0.12中可用。您可以做的是使用一些字符串操作来获取您的结果,如此处的说明(Terraform timestamp() to numbers only string),并执行一个简单的子字符串,虽然不是一个非常优雅的解决方案,但它可以工作。
locals {
timestamp = "${timestamp()}"
timestamp_sanitized = "${substr(replace("${local.timestamp}", "/[-| |T|Z|:]/", ""),0,8)}"
}
output "timestamp" {
value = "${local.timestamp_sanitized}"
}