Sid*_*kar 5 terraform-provider-azure terraform-modules
我想使用一个资源/模块的输出变量作为另一资源/模块的输入。那可能吗?在这里,我希望根目录中“outputs.tf”的输出值用作模块“main.tf”中的输入。
root
|--main.tf
|--vars.tf
|--outputs.tf
|---module
|--main.tf
|--vars.tf
Run Code Online (Sandbox Code Playgroud)
当然可以。您无需再做任何事情。像往常一样做就可以了。这是一个例子:
\n\nmain.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 output.tf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 rg.tf\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 vnet\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 output.tf\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 vnet.tf\nRun Code Online (Sandbox Code Playgroud)\n\n您创建模块rg并vnet按照它的方式创建。设置您需要的输出。这里我设置了输出rg_name和rg_location。我还根据需要在模块中设置了变量rg_name和。然后 main.rf 显示在这里:rg_locationvnet
provider "azurerm" {\n features {}\n}\n\nmodule "rg" {\n source = "./rg"\n\n rg_name = "charlesTerraform"\n}\n\nmodule "vnet" {\n source = "./vnet"\n\n rg_name = module.rg.rg_name\n rg_location = module.rg.rg_location\n}\n\noutput "vnet" {\n value = module.vnet.vnet\n}\nRun Code Online (Sandbox Code Playgroud)\n\n你看,我使用模块的输出rg作为模块的输入vnet。希望它能帮助您了解 Terraform 模块。
更新:
\n\n当结构是你说的时候也是一样的。您只需将需要的输出输入到模块中即可。例如:
\n\nresource "azurerm_resource_group" "example" {\n name = "xxxxxx"\n location = "xxxx"\n}\n\nmodule "vnet" {\n source = "./modules"\n\n resource_group = azurerm_resource_group.example.name\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这只是一个示例,但它向您展示了如何实现它。希望你能理解。
\n| 归档时间: |
|
| 查看次数: |
15777 次 |
| 最近记录: |