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。
沒有留言:
張貼留言