AWS CloudFormation retornando “Solicitação inválida” ao tentar criar um AWS :: Route53 :: RecordSet

13

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.

    
por Stephen Melrose 04.12.2014 / 00:23

4 respostas

18

Acontece que eu não tentei TTL e DependsOn .

Funciona com os dois.

    
por 04.12.2014 / 00:34
1

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.

    
por 03.10.2015 / 00:36
0

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

    
por 28.10.2015 / 12:40
0

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 ).

    
por 23.04.2018 / 23:52