Terraform使用local values簡單範例。
在「Terraform local_file hello world」範例的hello.tf
中利用了local_file
resouce產生一個內容為Hello world!
的文字檔hello.txt
。下面則把local_file
resource的content
的值以local values的方式傳入。
在hello.tf
同個目錄中新增locals.tf
內容如下。
locals
為定義local values的block,後面不需要label;
locals
block裡面則以key-value的形式定義每個local values,value除了實字外也可以是expression。
locals.tf
locals {
name = "John"
content = "Hello ${local.name}"
}
上面定義兩個local values:
name
值為字串John
;
content
值為字串Hello
接插值符${local.name}
取得name
的值。
Terraform配置使用local
物件local.<NAME>
取得local values的值,例如local.name
取得locals block中name
的值John
。
把hello.tf
中argument content
的值改為local.content
,則Terraform執行時會把local.content
的值帶入。
hello.tf
resource "local_file" "hello" {
filename = "${path.module}/hello.txt"
content = local.content
}
在hello.tf
所在目錄以命令列輸入terraform apply
執行結果如下。
hello.txt
Hello John
Local values只能被所在的module存取,且值不會在terraform執行時被修改。
參考github。
沒有留言:
張貼留言