DataBricks 示例 Terraform 代码导致 AWS VPC 模块出错

DataBricks Sample Terraform Code causes error in AWS VPC module

我是 DataBricks 的新手,正在尝试使用 DataBricks 提供的 sample Terraform code 部署 E2 工作区。我刚刚开始使用 VPC 部分:

data "aws_availability_zones" "available" {}

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  # version = "3.2.0"

  name = local.prefix
  cidr = var.cidr_block
  azs  = data.aws_availability_zones.available.names

  enable_dns_hostnames = true
  enable_nat_gateway   = true
  single_nat_gateway   = true
  create_igw           = true

  private_subnets = [cidrsubnet(var.cidr_block, 3, 1),
                     cidrsubnet(var.cidr_block, 3, 2)]

  manage_default_security_group = true
  default_security_group_name = "${local.prefix}-sg"

  default_security_group_egress = [{
    cidr_blocks = "0.0.0.0/0"
  }]

  default_security_group_ingress = [{
    description = "Allow all internal TCP and UDP"
    self        = true
  }]
}

当我 运行 terraform plan 我得到这个错误:

│ Error: Error in function call
│
│   on .terraform/modules/vpc/main.tf line 1090, in resource "aws_nat_gateway" "this":
│ 1090:   subnet_id = element(
│ 1091:     aws_subnet.public.*.id,
│ 1092:     var.single_nat_gateway ? 0 : count.index,
│ 1093:   )
│     ├────────────────
│     │ aws_subnet.public is empty tuple
│     │ count.index is 0
│     │ var.single_nat_gateway is true
│
│ Call to function "element" failed: cannot use element function with an empty list.

非常感谢任何关于这里出了什么问题的指示。

您设置了需要互联网网关 create_igw = true,但您没有指定 public_subnets。如果你有 igw,你必须有 public_subnets