gpt4 book ai didi

terraform - Terraform 中的变量插值

转载 作者:行者123 更新时间:2023-12-04 11:20:08 27 4
gpt4 key购买 nike

我在 terraform 的变量插值中遇到了麻烦。这是我的 terraform 配置的样子。即内置函数内的变量

variable "key" {}

ssh_keys {
path = "/home/${var.provider["user"]}/.ssh/authorized_keys"
key_data = "${file(${var.key})}"
}

命令: terraform apply -var 'key=~/.ssh/id_rsa.pub'

它不是从命令行参数或 env 变量中读取“key”的值。但是,当我对 .tf 文件中的值进行硬核时,它会起作用。像下面。
key_data = "${file("~/.ssh/id_rsa.pub")}"

最佳答案

${ ... }语法仅在将表达式嵌入到带引号的字符串中时使用。在这种情况下,您的 var.key变量只是作为参数传递给已经在 ${ ... } 中的函数序列,你可以像这样直接引用变量名:

key_data = "${file(var.key)}" 

嵌套 ${ ... }序列有时用于将内插字符串传递给函数。在这种情况下,首先会有一组嵌套的引号返回到字符串上下文。例如:
key_data = "${file("${path.module}/${var.key_filename}")}" 

在这种更复杂的情况下,最内层的字符串表达式首先被评估以将两个变量与 / 连接在一起。 ,然后将整个字符串传递给 file函数,结果最终作为 key_data的值返回.

关于terraform - Terraform 中的变量插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42991690/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com