module - Terraform 模块变量.tf
问题描述
尝试使用 terraform 模块并遇到一个奇怪的问题(我认为)。这是我的结构:[TF 目录结构。][1] [1]:https://i.stack.imgur.com/P4fyr.png
这是根 main.tf:
provider "azurerm" {
features {
}
}
module "createrg" {
source = "./modules/rg"
my_loc = var.my_loc
rgName = var.rgName
}
这是根变量.tf
variable "my_loc" {
type = "string"
}
variable "rgName" {
type = "string"
}
这是“rg”模块的 main.tf:
provider "azurerm" {
## dev_subscription_id = var.dev_subscription
features {
}
}
resource "azurerm_resource_group" "rgDev" {
location = var.my_loc
name = var.rgName
}
这是“rg”模块的variable.tf
variable "my_loc" {
type = "string"
}
variable "rgName" {
type = "string"
}
这是 dev.tfvars
my_loc = "canadacentral"
rgName = "rg_ModuleTest"
我将计划运行为:
terraform plan -var-file=./variables/dev.tfvars
由于我刚开始使用 terraform,因此我使用的是最新版本。如果我从一个或两个 variables.tf 中删除任何变量,我会收到错误并且计划不会执行。例如,如果我从根 variables.tf 文件中删除变量声明,我会收到错误:“错误:引用未声明的输入变量”,如果我从 rg 模块中的 variable.tf 中删除变量声明,我会收到一个错误:“错误:不支持的参数...此处不应使用名为“rgName”的参数。” 该计划起作用的唯一方法是当我在根模块和 rg 模块的 variables.tf 文件中具有相同的变量时。
这是模块应该如何工作的吗?我已经在互联网上搜索了一个解释,但我认为我在这里遗漏了一些东西。我的意思是,如果我有要为 20 个资源创建的模块,那么认为我必须在两个地方复制变量感觉很荒谬 - 根和相应模块的 variables.tf 文件。
预先感谢您的帮助。
解决方案
推荐阅读
- arduino - ESP8266 WiFiUDP 发送数据包导致挂起然后崩溃
- angular - 通过表单控件从父级获取验证器
- stackexchange-api - SEDE 中的结果计数与 Stack Exchange 的 API 不匹配
- python - 如何在不结束python中的for循环的情况下使用return?
- ios - 使用圆形按钮自定义标签栏问题 swift
- php - 检查元素是否存在于数组中,如果条件 PHP 则返回
- javascript - 让机器人对自己的消息做出反应
- shell - 以表格格式排列数据
- android - Facebook 受众网络广告(奖励、横幅、插页式广告)未在发布模式下显示
- codeigniter - CI 4项目公用文件夹内的NULL文件夹