Terraform中能否在同一资源内引用自身属性?
同一资源内引用属性的可行性
可以的,Terraform 支持在同一资源块内部引用自身的属性值,核心就是用内置的this关键字来实现。
this代表当前资源实例本身,能直接访问资源块里已经定义的属性——不管是你显式设置的输入属性,还是资源创建后生成的输出属性都能引用。
比如你给出的这段代码就是完全合法的实现:
resource "some_resource" "foo" { name = "cool-name" attribute1 = "something-else-cool" attribute2 = format("%s-%s", this.name, this.attribute1) }
这里attribute2通过this分别引用了同一资源里的name和attribute1,最终会生成值cool-name-something-else-cool。
需要注意的是,Terraform会先解析整个资源块的所有属性定义,所以属性的定义顺序不影响this的引用,哪怕你把attribute2写在name前面也能正常工作。
内容的提问来源于stack exchange,提问作者Jonathon Anderson
相关产品推荐
相关产品推荐

