Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform:缺少必需的参数_Terraform - Fatal编程技术网

Terraform:缺少必需的参数

Terraform:缺少必需的参数,terraform,Terraform,有人可以帮助澄清局部和全局变量在地形中是如何工作的?我现在面临的问题是: PS E:\GitRepo\Terraform\prod>Terraform平面图 ╷ │ 错误:缺少必需的参数 │ │ 在main.tf第46行的模块“pub rt”中: │ 46:模块“发布rt”{ │ │ 参数“vpc_cidr_块”是必需的,但未找到定义。 ╵ ╷ │ 错误:缺少必需的参数 │ │ 在main.tf第46行的模块“pub rt”中: │ 46:模块“发布rt”{ │ │ 参数“nat

有人可以帮助澄清局部和全局变量在地形中是如何工作的?我现在面临的问题是:

PS E:\GitRepo\Terraform\prod>Terraform平面图 ╷ │ 错误:缺少必需的参数 │ │ 在main.tf第46行的模块“pub rt”中: │ 46:模块“发布rt”{ │ │ 参数“vpc_cidr_块”是必需的,但未找到定义。 ╵ ╷ │ 错误:缺少必需的参数 │ │ 在main.tf第46行的模块“pub rt”中: │ 46:模块“发布rt”{ │ │ 参数“nat_id”是必需的,但未找到定义

我的代码结构是:

-- Dev
  -- main.tf
-- modules
  -- rt
    -- pub-rt.tf
    -- pri-rt.tf
    -- vars.tf
这是我的main.tf

# Create Public Route Table
module "pub-rt" {
  source            = "../modules/rt"
  pub_rt_tag        = { Name = "prod-pub-rt" }
  vpc_id            = module.vpc.vpcId 
  ir_cidr           = var.ir_cidr                                 # routing inside the VPC
  gateway_id        = module.igw.igwId                            # routing to the internet through igw
}


# Create Private Route Table
module "pri-rt" {
  source            = "../modules/rt"
  pub_rt_tag        = { Name = "prod-pri-rt" }
  vpc_id            = module.vpc.vpcId 
  vpc_cidr_block    = var.vpc_cidr                                # routing inside the VPC
  nat_id            = module.nat.natId                            # routing to the internet NAT
}
My../rt/vars.tf包含:

variable "vpc_cidr_block" { }  //this variable point to "pri-rt.tf"
variable "vpc_id" { }          //this variable common and point to "pub-rt.tf" and "pri-rt.tf"
variable "gateway_id" { }      //this variable point to "pub-rt.tf"
variable "nat_id" { }          //this variable point to "pri-rt.tf"
variable "ir_cidr" { }         //this variable point to "pub-rt.tf"

变量具有模块作用域,因此不存在在所有子模块上传播的全局变量。您的
vars.tf
应该位于
/Dev
中。您还需要相应的
vars.tf
以及特定于您模块的变量。

您没有传递
发布rt
模块中的
vpc\u cidr\u块
。我不需要“pub rt”中的“vpc_cidr_block”。我只在“pri rt”中需要它