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.
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 unidentificador 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
debecomenzar 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:Una forma de asegurarte de que el parámetro
subnet_group_name
sea válido es hacerlo dinámico utilizando el meta-argumentocount
. Por ejemplo:En este ejemplo, el parámetro
subnet_group_name
se hace dinámico utilizando el meta-argumentocount
. El valor desubnet_group_name
se establecerá enexample1632-groupname-1
yexample1632-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.