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 Databaserecurso, 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 TTLmismo error.
fuente

TTLfuncionó para mí,DependsOnera 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
TTLpropiedad y funciona bien, parece que laTTLpropiedad es imprescindible para tales conjuntos de registros.No estoy usando
DependsOnya que el conjunto de registros depende"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],del recurso "ApplicationRds", por lo que no veo ninguna ganancia para usarDependsOnfuente
Si el mismo error ocurre cuando se crean registros que hacer un
TTLconjunto, comprobar si no sonALIASregistros de tipo, ya que deben no tener un TLL (ya que se copia de laAliasTarget).fuente