es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Terraform nat gateway AWS would be translated into Spanish as “Gateway NAT de Terraform en AWS”.

Estoy intentando crear un nat gateway desde terraform utilizando AWS como proveedor, pero el subnetid en el recurso awsnatgateway siempre me da un error. Estoy intentando asignar un subnet público en subnetid en el recurso “awsnatgateway” “samplenatgateway” desde el archivo variables.tf, pero no lo logro y necesito ayuda si alguien puede asistirme.

A continuación está mi archivo vpc.tf del módulo vpc:

 resource "aws_subnet" "public-subnet" {
  for_each = var.prefix

  availability_zone_id = each.value["az"]
  cidr_block = each.value["cidr"]
  vpc_id     = aws_vpc.sample_vpc.id     
  tags = {
    Name = "${var.name}-${each.value["az"]}"
 }
}
resource "aws_nat_gateway" "sample_nat_gateway" {
  allocation_id = aws_eip.sample_eip.id
  subnet_id      = ""
  tags = {
    Name = "${var.name}-sample-nat-gateway"
    Environment = var.environment
}
  depends_on = [aws_internet_gateway.sample_igw]
}

variables.tf

variable "prefix" {
   type = map
   default = {
      sub-1 = {
         az = "use2-az1"
         cidr = "10.0.1.0/16"
      }
      sub-2 = {
         az = "use2-az2"
         cidr = "10.0.2.0/24"
      }
   }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando asignar un ID de subred pública a tu recurso aws_nat_gateway desde el archivo variables.tf, pero el campo subnet_id está vacío, lo que está causando un error. Para solucionar esto, debes referenciar un ID de subred válido en el campo subnet_id. Puedes hacerlo tanto codificando el ID de la subred directamente como pasándolo como una variable al módulo que crea el Gateway NAT.

    Para pasar el ID de la subred a través de una variable, puedes agregar una nueva variable a tu archivo variables.tf que contendrá el ID de la subred:

    variable "nat_gateway_subnet_id" {
      description = "ID de subred a utilizar para el Gateway NAT"
      type        = string
      default     = ""
    }
    

    Luego, actualiza tu recurso aws_nat_gateway para usar la variable nat_gateway_subnet_id como valor para el campo subnet_id:

    resource "aws_nat_gateway" "sample_nat_gateway" {
      allocation_id = aws_eip.sample_eip.id
      subnet_id      = var.nat_gateway_subnet_id
      tags = {
        Name        = "${var.name}-sample-nat-gateway"
        Environment = var.environment
      }
      depends_on = [aws_internet_gateway.sample_igw]
    }
    

    Finalmente, cuando ejecutes tu comando Terraform apply, pasa la variable nat_gateway_subnet_id con un valor de ID de subred válido:

    terraform apply -var 'nat_gateway_subnet_id=subnet-xxxxxxxxxxxxx'

    Esto debe solucionar el error y crear el Gateway NAT con el ID de subred especificado.

Comments are closed.