Acontece que eu não tentei TTL
e DependsOn
.
Funciona com os dois.
Estou perplexo com isso.
99% do tempo CloudFormation é muito bom em fornecer a você algum tipo de mensagem de depuração com a qual você pode trabalhar, mas "Solicitação inválida" me deixou perplexo, especialmente quando o recurso é bastante simples começar com.
Isso é dito recurso que está me dando problemas (modelo gerado por anotações Ansible, portanto {{...}}),
"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"
}
Pelo que posso dizer nos documentos, tudo o que é necessário está presente, correto e no formato certo.
A única coisa em que consigo pensar é que estou adicionando esse recurso a uma pilha do existente CloudFormation que criei anteriormente que já criou o recurso Database
, que para o registro é um AWS::RDS::DBInstance
(feliz em postar o modelo de recurso para isso também, se necessário, nada de especial).
Alguma idéia de porque estou recebendo "solicitação inválida"?
Obrigado.
Editar: tentei isso com e sem TTL
, o mesmo erro.
Além de TTL e DependsOn, a ideia principal é garantir que o sistema não tente criar o conjunto de registros usando referências que não existem.
Como tal, o DependsOn não deve existir apenas, mas deve listar todos os recursos que são referenciados na definição RecordSetGroup (Balanceadores de Carga, outras entradas de DNS, ENIs, etc). Isso garantirá que a formação de nuvem atrase a criação dos registros DNS até que os pré-requisitos sejam atendidos.
Eu tenho o problema semelhante, acabei de definir a propriedade TTL
e ela funciona bem, parece que TTL
property é uma obrigação para esses conjuntos de registros.
Eu não estou usando DependsOn
, pois o conjunto de registros depende de "ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],
do recurso "ApplicationRds", por isso não vejo nenhum ganho em usar DependsOn
Se o mesmo erro ocorrer ao criar registros que fazem têm TTL
set, verifique se eles não são ALIAS
-type, pois eles não ter um TLL (como é copiado do AliasTarget
).