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.

Operación de Servicio AWS SDK Go sin éxito (Terraform)

Tratando de crear recursos de (Amazon MemoryDB para Redis) utilizando Terraform. El problema es que aún no hay recursos disponibles a través de Terraform, sin embargo, Terraform realiza las provisiones utilizando el control de la nube.

Actualmente, experimentando el siguiente error:

Error: Operación de servicio AWS SDK Go sin éxito

Llamada a la operación GetResource del servicio de API de control de la nube devuelta:
error de operación CloudControl: GetResource, respuesta https  
error StatusCode: 400, RequestID: dd4b43be-f57c-48be-ab08- 
ea1da10dbf5c, InvalidRequestException: AWS::MemoryDB::SubnetGroup  
El controlador devolvió el estado FAILED: El parámetro SubnetGroupName no es un identificador válido. Los identificadores deben comenzar con una letra; deben contener solo letras ASCII, dígitos y guiones; y no deben terminar con un guion o contener dos guiones consecutivos. (Servicio: MemoryDb, Código de estado: 400, ID de solicitud: 
c704c59a-aea5-449a-9e08-dbc53b44650c, ID de solicitud extendida: null)  
(HandlerErrorCode: InvalidRequest, RequestToken: 1d771c74-5a42- 
464c-b944-fac3ef553ea9)

Aquí está el código para el recurso:

resource "awscc_memorydb_subnet_group" "example1632-groupname" {
  subnet_ids       = [aws_subnet.enrichment-subnet-1.id, aws_subnet.enrichment-subnet-2.id]
  subnet_group_name = "example1632-groupname"
}

No encuentro nada mal con el nombre del grupo de subred, ¿entonces no estoy seguro de qué está mal?
Por favor, ayúdame.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Solución

    Según el mensaje de error, el problema parece estar en el valor del parámetro subnet_group_name dentro del bloque de recursos. El mensaje de error indica que el valor de este parámetro no es un identificador válido, lo que significa que no cumple con las convenciones de nombres requeridas por el servicio AWS MemoryDB.

    De acuerdo con el mensaje de error, el subnet_group_name debe comenzar con una letra, contener solo letras ASCII, dígitos y guiones, y no debe terminar con un guion ni contener dos guiones consecutivos. Por lo tanto, debes asegurarte de que el valor que proporcionas para este parámetro cumpla con estos requisitos.

    Aquí tienes algunas cosas que puedes verificar para asegurarte de que el parámetro subnet_group_name sea válido:

    • Utiliza un nombre que comience con una letra.
    • Utiliza solo letras ASCII, dígitos y guiones.
    • Asegúrate de que el nombre no termine con un guion.
    • Evita utilizar dos guiones consecutivos.

    Una forma de asegurarte de que el parámetro subnet_group_name sea válido es hacerlo dinámico utilizando el meta-argumento count. Por ejemplo:

    resource "awscc_memorydb_subnet_group" "example1632-groupname" {
      subnet_ids        = [aws_subnet.enrichment-subnet-1.id, aws_subnet.enrichment-subnet-2.id]
      subnet_group_name = "${var.subnet_group_name}-${count.index + 1}"
      count             = 2
    
      tags = {
        Name = "example1632-groupname"
      }
    }
    

    En este ejemplo, el parámetro subnet_group_name se hace dinámico utilizando el meta-argumento count. El valor de subnet_group_name se establecerá en example1632-groupname-1 y example1632-groupname-2 para los dos recursos creados por Terraform.

    Alternativamente, puedes intentar cambiar el valor del parámetro subnet_group_name para asegurarte de que cumpla con las convenciones de nombres del servicio AWS MemoryDB.

    Una vez que te hayas asegurado de que el parámetro subnet_group_name sea válido, deberías poder crear los recursos de AWS MemoryDB para Redis utilizando Terraform sin ningún problema.

Comments are closed.