覆盖 terraform 变量对象中的属性
Overwrite attribute in terraform variable object
我需要传递一个包含多个变量的对象的变量。有什么方法可以在解析时覆盖这些属性之一吗?
例如:
global = {
region = "eu-central-1"
account_id = "9555555"
app_port = 8080
domain = "my.domain"
stage = "production"
docker_tag = "production" }
但是我想传递这个全局变量,但是 docker_tag 设置为“最新”,有什么方法可以做到这一点而无需放置所有属性并替换我需要的属性吗? (我有 25 个属性)
我不想做的例子:
global = {
region = var.region
account_id = var.account_id
app_port = var.app_port
domain = var.domain
stage = var.stage
docker_tag = "latest" }
感谢大家
我自己找到了合并的方法 (https://www.terraform.io/docs/language/functions/merge.html):
“如果多个给定的映射或对象定义相同的键或属性,则参数序列中较晚的一个优先。”
merge ( var.global, { docker_tag = "latest"})
刚刚替换了我要替换的key
我需要传递一个包含多个变量的对象的变量。有什么方法可以在解析时覆盖这些属性之一吗? 例如:
global = {
region = "eu-central-1" account_id = "9555555" app_port = 8080 domain = "my.domain" stage = "production" docker_tag = "production" }
但是我想传递这个全局变量,但是 docker_tag 设置为“最新”,有什么方法可以做到这一点而无需放置所有属性并替换我需要的属性吗? (我有 25 个属性) 我不想做的例子:
global = {
region = var.region account_id = var.account_id app_port = var.app_port domain = var.domain stage = var.stage docker_tag = "latest" }
感谢大家
我自己找到了合并的方法 (https://www.terraform.io/docs/language/functions/merge.html): “如果多个给定的映射或对象定义相同的键或属性,则参数序列中较晚的一个优先。”
merge ( var.global, { docker_tag = "latest"})
刚刚替换了我要替换的key