我想在几个地方记录用于构建系统的Terraform版本(例如标记或生成的代码文件(。
怎么可能做这样的事情:
locals {
tags = {
terraform_version = # what goes in here?
}
}
如果你想在标签中包含Terraform的版本,这是一件完全合法的事情,你可以使用null_resource来获取版本,将其写入文件,然后将其拉入标签:
locals {
tags = {
terraform_version = data.local_file.terraform_version.content
}
}
resource "null_resource" "get_terraform_version" {
triggers = { always_run = "${timestamp()}" }
provisioner "local-exec" {
command = "echo $(terraform --version | sed 1q) > ${path.module}/terraform_version.txt"
}
}
data "local_file" "terraform_version" {
filename = "${path.module}/terraform_version.txt"
depends_on = [null_resource.get_terraform_version]
}
锁文件用于确保TF版本保持一致。将其添加到版本控制中,您将永远知道使用了哪个版本。
https://www.terraform.io/language/files/dependency-lock