gpt4 book ai didi

Terraform:在模块之间共享资源

转载 作者:行者123 更新时间:2023-12-05 00:53:07 27 4
gpt4 key购买 nike

我正在创建一个运行良好的 terraform 模块。但是,当我多次使用它时,它会创建多个角色和策略,它们实际上是相同的。

我正在考虑是否有办法让模块在我第一次调用它时创建一个角色并继续为后续模块使用相同的角色

最佳答案

不,Terraform 不支持这一点。最好的办法是在模块之外(或在单独的模块中)创建共享资源,然后将它们作为输入参数传递到您正在创建的模块中多次。

我喜欢为“共享”资源创建一个模块的方法,因为这样您就可以将整个模块作为输入参数传递给任何使用这些共享资源的模块。

编辑:共享模块的示例代码:

main.tf

module "mod1" {
source = "./mymodule1"
}

module "mod2" {
source = "./mymodule2"
input_module = module.mod1
}

output "mod2" {
value = module.mod2
}

mymodule1/main.tf

output "some_field" {
value = "foo"
}

mymodule2/main.tf

variable "input_module" {}

output "module_that_was_input" {
value = var.input_module
}

结果:

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

mod2 = {
"module_that_was_input" = {
"some_field" = "foo"
}
}

关于Terraform:在模块之间共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68394392/

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