我们正在尝试为AWS中的以下活动创建Terraform模块,以便我们可以在需要的地方使用它们.
但是在创建这些模块时,我们必须在上面列出的所有模块中定义提供者.所以我们决定为提供者创建一个模块,以便我们可以在其他模块(VPC,Subnet等)中调用该提供者模块.
上述方法的问题在于它没有采用提供者值,并要求用户输入区域.
Terraform配置如下:
provider "aws" {
region = "${var.region}"
}
Run Code Online (Sandbox Code Playgroud)
variable "region" {}
Run Code Online (Sandbox Code Playgroud)
module "provider" {
source = "../../modules/providers"
region = "${var.region}"
}
resource "aws_vpc" "vpc" {
cidr_block = "${var.vpc_cidr}"
tags = {
"name" = "${var.environment}_McD_VPC"
}
}
Run Code Online (Sandbox Code Playgroud)
variable "vpc_cidr" {}
variable "environment" {}
variable "region" {}
Run Code Online (Sandbox Code Playgroud)
module "dev_vpc" {
source = "modules/vpc"
vpc_cidr = "${var.vpc_cidr}"
environment = …Run Code Online (Sandbox Code Playgroud) terraform ×1