[英]Terraform Azure : using resource name automatically on the display name groupe creation
[英]Order of resource creation in Terraform template
我用两个模块创建了 terraform 模板(天蓝色)。 一个模块用于资源组。 另一个用于 .net(它处理 NSG 和路由表的创建以及它们与 su.net 的关联)。
当我运行 terraform apply 时,它给出了路由表错误,因为尚未创建资源组。 创建顺序显示为首先创建路由表,然后是资源组。 有没有办法设置创建顺序? 在根目录下的main.tf中,先调用模块资源组,再调用.net。
重新考虑使用两个模块创建 RG 和资源的想法。 问自己一个简单的问题:为什么?
如果您 100% 确定这是正确的方法,请使用depends_on :
module "rg1" {
source = "./rg_module"
...
}
module "net1" {
source = "./network_module"
....
depends_on = [module.rg1]
}
您必须使用 -out 选项将计划保存到文件中。 喜欢:
terraform plan -out <plan_file>
始终建议使用 -out 并保存计划文件。 这将确保在后续应用中保留创建顺序。
另一种选择是使用隐式依赖:
- 让实际定义资源组的根模块返回 output:
output "rg_name" {
value = azurerm_resource_group.root_rg.name
}
-调用根模块的资源组模块没有修改
-创建路由表(模块)时,使用资源组模块中的output 值:
[假设下面模块中的变量分配使用名称resource_group_name向其根源提供输入]
resource_group_name =module.rg_module["<OPTIONAL KEY IF USING FOR EACH IN RG MODULE"].rg_name
这会创建对资源组的内部依赖。
请注意,除非定义了 output 个值,否则无法从资源组模块中引用参数(实际上是变量)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.