ako*_*a01 3 terraform terraform-provider-azure
我有以下目录/文件结构:
.
??? main.tf
??? modules
? ??? Resource_group
? ??? main.tf
? ??? vars.tf
Run Code Online (Sandbox Code Playgroud)
配置文件
./main.tf
module "app-rg" {
source = "./modules/Resource_Group"
}
Run Code Online (Sandbox Code Playgroud)
./modules/resource_group/main.tf
provider "azurerm" {
version = "=2.11.0"
features { }
}
resource "azurerm_resource_group" "rg" {
name = "${lookup(var.resource_group, var.env)}"
location = "${lookup(var.location, var.env)}"
}
Run Code Online (Sandbox Code Playgroud)
./modules/resource_group/vars.tf
variable "env" {
description = "env : dev or prod"
}
variable "resource_group" {
type = "map"
default = {
dev = "rg-dev"
prod = "rg-prod"
}
}
variable "location" {
type = "map"
default = {
dev = "westindia"
prod = "westeurope"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行“terraform plan”时,我会收到以下错误。
错误:缺少必需的参数
在 main.tf 第 6 行,在模块“app-rg”中:6:模块“app-rg”{
参数“env”是必需的,但没有找到定义。
为什么我得到参数“env”是必需的,但没有找到定义?
小智 7
您尚未提供env输入变量。
由于不存在默认值,因此 terraform 不知道您要使用什么环境。您有几个选项可以解决这个问题。首先,您可以main.tf在调用模块时在 中包含变量值。它看起来像这样:
module "app-rg" {
source = "./modules/Resource_Group"
env = "dev"
}
Run Code Online (Sandbox Code Playgroud)
您还可以将此输入变量包含在外部变量定义文件中,例如terraform.tfvars,或将其作为环境变量传递,或在/modules/resource_group/vars.tf
以下是 HasiCorp 关于变量和模块的一些资源:
| 归档时间: |
|
| 查看次数: |
6457 次 |
| 最近记录: |