azure 防止在Terraform应用期间复制Terraform资源

bis0qfac  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(107)

我有一个使用云将企业应用程序部署到Azure的解决方案。我已经按照Terraform的建议将解决方案模块化为不同的模块。
链接:https://developer.hashicorp.com/terraform/language/modules/develop/composition
这个问题是由一个负责创建资源组的模块引起的,该模块充当其他模块的父模块。每次在Terraform apply期间,子模块调用此模块时,都会复制资源组。我已经附上了进一步的参考截图。我该如何预防这种情况?

这是我的Project文件夹结构


的数据

地形图输出

这是我如何定义输出变量。

这是我在其他模块中使用output var的方式。

jv2fixgn

jv2fixgn1#

不可能知道你是如何定义你的模块和它们的资源的,但看起来你是从其他模块中调用你的资源组模块的。如果您希望每个模块中的资源都有自己的资源组(在这种情况下,您需要为每个资源组传递不同的名称),那么这是必要的,但是您似乎希望整个解决方案都有一个唯一的资源组,不是吗?
在这种情况下,您需要:

  • 导出资源组模块中的输出(例如rg_name或您想要的任何其他名称)
  • 在您的其他模块中,您必须为resource_group_name属性声明和定义一个必需的变量(例如var.resource_group_name)
  • 在你的根模块(可能是main.tf.gitignore文件下面的www.example.com文件)中,在调用每个模块时,你需要传递一个输出引用作为变量值(例如:“resource_group_name = module.resource_group.rg_name”)

请检查它是否解决了您的问题,并支持/接受答案。

相关问题