Estoy perdido en este caso.
El 99% de las veces CloudFormation es bastante bueno para darle algún tipo de mensaje de depuración con el que puede trabajar, pero "Solicitud no válida" me ha dejado perplejo, especialmente cuando el recurso es bastante simple para empezar.
Este es dicho recurso que me está dando problemas (plantilla generada por Ansible, de ahí {{...}} anotaciones),
"DatabaseDNSRecord": {
"Type": "AWS::Route53::RecordSet",
"Properties": {
"HostedZoneId": "HOSTED_ZONE_ID",
"Name": "db.{{ item.env_name|lower }}v2.<DOMAIN>.com.",
"ResourceRecords": [
{
"Fn::GetAtt": [ "Database", "Endpoint.Address" ]
}
],
"Type": "CNAME"
},
"DependsOn": "Database"
}
Por lo que puedo decir de los documentos, todo lo que se requiere está presente, correcto y en el formato correcto.
Lo único que se me ocurre es que estoy agregando este recurso a una pila existente de CloudFormation que creé anteriormente y que ya creó el Database
recurso, que para el registro es un AWS::RDS::DBInstance
(feliz de publicar la plantilla de recursos para eso también si es necesario, nada especial) .
¿Alguna idea de por qué recibo una "solicitud no válida"?
Gracias.
Editar: Intenté esto con y sin un TTL
mismo error.
fuente
TTL
funcionó para mí,DependsOn
era innecesario. ¡Gracias!Más allá de TTL y DependsOn, la idea principal es asegurarse de que el sistema no intente crear el conjunto de registros utilizando referencias que no existen.
Como tal, DependsOn no solo debe existir, sino que también debe enumerar todos los recursos a los que se hace referencia en la definición RecordSetGroup (Balanceadores de carga, otras entradas DNS, ENI, etc.). Esto asegurará que la formación en la nube retrase la creación de los registros DNS hasta que se cumplan los requisitos previos.
fuente
Tengo el problema similar, acabo de establecer la
TTL
propiedad y funciona bien, parece que laTTL
propiedad es imprescindible para tales conjuntos de registros.No estoy usando
DependsOn
ya que el conjunto de registros depende"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],
del recurso "ApplicationRds", por lo que no veo ninguna ganancia para usarDependsOn
fuente
Si el mismo error ocurre cuando se crean registros que hacer un
TTL
conjunto, comprobar si no sonALIAS
registros de tipo, ya que deben no tener un TLL (ya que se copia de laAliasTarget
).fuente