我可以从 Terraform 中的模块输出提供程序吗?

我可以从 Terraform 中的模块输出提供程序吗?

我想从 terraform 中的一个模块输出一个 postgreql 提供程序,然后使用它进一步配置数据库。

当前用例是一个创建 postgres rds 实例的模块,我想返回一个“postgresql 提供程序”来继续设置角色和数据库。

答案1

不,你不能这么做。你需要从模块返回登录值,这样你才能使用这些值在模块外部设置提供程序。

我只需编辑模块并执行模块内部所需的操作,这样您就不必输出那些内容。

答案2

不要这么做,而是转换原则并注入一个提供程序。

例如在你的模块中你有

provider "azurerm" {
  version = "~> 1.16"
}

现在在实际环境中,我将切换到别名提供程序,例如

provider "azurerm" {
  version = "~> 1.16"
  alias   = "goldenrule"
}

然后你可以像这样将其注入到模块中

module "something-great" {
  source = "./great/thang/"
  providers = {
    azurerm  = "azurerm.goldenrule"
  }
}

相关内容