问题标签 [terraform0.12+]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
terraform - terraform replace() - “str”参数的值无效:需要字符串
尝试升级到 Terraform 0.12 时出现以下错误:
查看下面的自定义模块,我似乎无法在字符串中使用 replace() 函数...
该模块的目标是根据自定义参数启动 EC2。除此之外,还有一些活动部分,包括添加私有 dns 记录。我根据 this_mybox.private_ip[0] 命名它。在 Terraform 0.11.14 中它运行良好;但由于这个原因,我在升级上遇到了障碍。
在 aws_route53_record 名称中使用 replace() 是否有另一种方法?
terraform - Terraform-12 (AWS):根据提供的输入变量使用 for/for_each 创建子网
我想创建一个可以接受环境输入的模块(dev、test、prod)并使用适当的标签创建子网的数量(每个环境的“app”和“db”子网)。例如 Name=dev-app 该模块应该灵活地添加/删除子网,因为输入变量被更新。我的模板如下所示
我指的是下面的文章。 https://www.hashicorp.com/blog/terraform-0-12-rich-value-types/ 问题2:如何为以下模块定义“网络”变量
https://www.hashicorp.com/blog/hashicorp-terraform-0-12-preview-for-and-for-each/
terraform - 从 Terraform 0.11 升级到 0.12 期间的列表问题
我在尝试重写一个在 Terraform 0.12 中工作的列表时遇到问题,该列表在 Terraform 0.11 中工作。
这是我的清单:
我将它添加到模块中:
master_authorized_networks_config = var.master_authorized_networks_config
运行后terraform apply
出现以下错误:
我无法解决这个问题。你能帮助我吗?
terraform - 引用 Terraform 中的其他模块资源
我的 Terraform Cloud git 项目中有这样的层次结构:
所有主main.tf
文件都包含带有子文件夹的模块定义:
/main.tf
:
/aws/main.tf
:
/aws/security-rules/main-tf
:
/aws/vms/main-tf
:
然后我定义了这个安全规则。
/aws/security-rules/sec-rule1/main-tf
:
而且我想从一个或多个 VM 中引用它,但我不知道如何通过资源 ID(或名称)进行引用。我使用简单的名称而不是参考。
/aws/vms/vm1/main-tf
:
我想使用通过 name 或 ID 引用的安全规则(和更多东西),因为它会更加一致。此外,当我创建一个新的安全规则并同时创建一个 VM 时,Terraform OpenStack 提供者计划它没有错误,但是在应用它时,会产生错误,因为 VM 是先创建的,它没有发现尚未创建新的安全规则。
我怎样才能做到这一点?
terraform - 每个循环或 for 循环的 Terraform 不起作用
我正在尝试为多个服务主体的 azure 容器注册表设置角色
当我尝试从资源模块设置它时,我不确定这是正确的方法吗?
本质上,我正在尝试将 azure 容器注册表设置为与具有特定访问角色的多个服务主体一起使用。
以下是 var 定义。
当我执行它时,我收到以下错误。
请如果有人可以指导将非常有帮助。谢谢!
amazon-web-services - 属性“bucket_arn”的值不合适:在 terraform 中创建 AWS firehose 资源时需要字符串
我正在尝试在这里学习 terraform,但在创建 AWS 资源时遇到了一些问题。
我正在尝试创建 AWS firehose 传输流,但在尝试生成计划时出现错误。
我正在尝试将我创建的角色和 s3 buck 传递给 firehose 资源,但出现错误。
提前致谢。
conditional-statements - Terraform:如果满足条件,则设置可选资源属性,否则不声明
Terraform 上的一些资源支持可选属性。我有兴趣仅在满足条件时声明和设置可选属性的值。否则,根本不要声明它。
我发现的所有建议都是基于声明属性并将其值设置为null
如果条件不满足,而不是根本不声明属性。
有没有办法让我做类似以下的事情?在伪代码中:
让我知道,提前谢谢!
google-cloud-platform - 使用 TF 0.12+ 从带有条件资源的 output.tf 继承值
我在 GCP 中有一个用于填充 kubernetes 机密的服务帐户模块
这是我的模块
'output.tf' 包含以下内容
由于有一个条件是这些资源都是在没有enabled
标志的情况下创建的,所以我不得不在 TF 0.11.14 中这样处理它,而 tf0.12 自动升级工具在这里没有做太多的更改。
如何在 Terraform 0.12.24 中简化这一点,我尝试将输出修改为简单
但问题是,如果在删除过程中对应的kubernetes集群被删除,中途因为terraform出现错误,我将无法使用`terraform destroy'清理其余资源的terraform状态
尝试将其转换count
为for_each
如下所示给了我以下错误
我在上面做错了什么?
terraform-provider-azure - Terraform:Azure 中的“错误:从 terragrunt 调用模块时引用未声明的资源”
我第一次尝试使用 terragrunt。我遵循了参考https://terratest.gruntwork.io/docs/getting-started/quick-start/的目录结构。我想保留在我的环境文件夹中使用的重复 main.tf、outputs.tf 和 vars.tf 的 gid。以下是我面临的版本和错误。任何帮助将不胜感激。提前致谢。
Terragrunt 版本
地形版本
目录结构
terraform-live/terragrunt.hcl 的内容
}
terraform-live/prod/resource_group/main.tf 的内容
terraform-live/prod/resource_group/terragrunt.hcl 的内容
当我运行 terragrunt 计划时,出现以下错误:
google-cloud-platform - Terraform 0.12+ Error Inappropriate value for attribute "service_account": string required with try() function
I have a module for google_service_account
, and just converted to Terraform-12 (0.12.24)
When using this module in another resource as follows
I get the following error
How can this be resolved ?