Terraform 嵌套块内的地形动态块不传递值
我希望使用google_os_config_guest_Policys资源,但在将值传递到Terraform 嵌套块内的地形动态块不传递值,terraform,terraform-provider-gcp,Terraform,Terraform Provider Gcp,我希望使用google_os_config_guest_Policys资源,但在将值传递到软件包存储库的嵌套代码块时遇到问题 子模块main.tf package_repositories { dynamic "apt" { for_each = var.apt content { archive_type = lookup(apt.value, "archive_type", "
软件包存储库的嵌套代码块
时遇到问题
子模块main.tf
package_repositories {
dynamic "apt" {
for_each = var.apt
content {
archive_type = lookup(apt.value, "archive_type", "abc")
uri = lookup(apt.value, "uri", "abc")
distribution = lookup(apt.value, "distribution", null)
components = lookup(apt.value, "components", null)
gpg_key = lookup(apt.value, "gpg_key", null)
}
}
}
变量.tf
variable "apt" {
description = "Variable used for the APT block supported in the package_repositories variable. Pass in variables for apt_archive_type, apt_components, apt_distribution, apt_uri, apt_gpg_key."
type = any
default = []
}
terraform.tfvars
apt = [
{
archive_type = "DEB"
uri = "https://packages.cloud.google.com/apt"
distribution = "cloud-sdk-stretch"
components = ["main"]
}
]
每当我尝试从我的TFVAR中传入值时,我只会在我的地形规划
步骤中传入一个空白的包_存储库
地图
+ package_repositories { }
我已尝试删除动态块并静态定义package\u存储库
的值,这些存储库没有任何问题
package_repositories {
apt {
archive_type = "DEB"
uri = "https://packages.cloud.google.com/apt"
distribution = "cloud-sdk-stretch"
components = ["main"]
}
}
如果我尝试重新编写代码以使用动态
apt
块,它将尝试传入null
值。语法是否有问题,或者这是因为动态块不工作的beta资源吗?我尝试运行它,得到了所需的输出
+ package_repositories {
+ apt {
+ archive_type = "DEB"
+ components = [
+ "main",
]
+ distribution = "cloud-sdk-stretch"
+ uri = "https://packages.cloud.google.com/apt"
}
}
请确认您使用的是
terraform.tfvars
或任何其他tfvars文件。如果是其他文件,您是否正在使用-var文件传递到您的地形平面图?不确定这是否会改变任何内容,但您是否尝试添加,
在terraform.tfvars
文件中添加地图每个元素的结尾?@LazyEval在地图的每个元素后面加一个逗号是不走运的。是的,只是使用一个terraform.tfvars文件,terraform应该注意到这一点,因为我的.tfvars文件中有其他正确使用的值。只是为了确保您使用了动态apt块并像我一样从TFVAR中传入了值?只有当我将这些值硬编码到子模块中时,我才看到您的输出。是的,我使用的代码感谢您对疑难解答的帮助。我上面的代码被用作子模块,我在父模块中使用secondary main.tf引用source=./modules/os config
,但忘记将apt=var.apt
放在secondary main.tf中,因此它从不引入tfvars值。