AWS :: Route53 :: RecordSet를 생성하려고 할 때 AWS CloudFormation이 “잘못된 요청”을 반환 함 “HOSTED_ZONE_ID”,

나는 이것에 손실이 있습니다.

99 %의 시간은 CloudFormation이 작업 할 수있는 일종의 디버그 메시지를 제공하는 데 능숙하지만, “잘못된 요청”으로 인해 특히 리소스가 시작하기 매우 단순 할 때 문제가 발생했습니다.

이 문제는 Ansible에서 생성 한 템플릿이므로 {{…}} 표기법을 사용하는 문제입니다.

"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"
}

내가 문서에서 알 수있는 것에서 필요한 모든 것이 존재하고 정확하며 올바른 형식입니다.

내가 생각할 수있는 유일한 것은 내가있어입니다 추가 이 자원을 기존 앞서 이미 만든 생성 CloudFormation 스택 Database기록에 대한 것입니다 리소스를 AWS::RDS::DBInstance(그것도의 리소스 템플릿을 게시 할 행복 필요한 경우, 아무것도 특별한) .

“잘못된 요청”이 표시되는 이유가 있습니까?

감사.

편집 : 나는 TTL같은 오류가 있거나 없는이 시도했습니다 .



답변

나는 밝혀 시도하지 않았다 TTL DependsOn .

둘 다 작동합니다.


답변

TTL 및 DependsOn 이외의 주요 아이디어는 시스템이 존재하지 않는 참조를 사용하여 레코드 세트를 작성하지 않도록하는 것입니다.

따라서 DependsOn은 존재해야 할뿐만 아니라 RecordSetGroup 정의 (로드 밸런서, 기타 DNS 항목, ENI 등)에서 참조되는 모든 자원을 나열해야합니다. 이렇게하면 전제 조건이 충족 될 때까지 cloudformation이 DNS 레코드 작성을 지연시킵니다.


답변

비슷한 문제가 있는데 방금 TTL속성을 설정했으며 정상적으로 작동합니다. TTL속성이 레코드 세트의 필수 요소 인 것 같습니다 .

내가 사용하지 않는 DependsOn기록 설정에 따라 달라집니다로 "ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],내가 사용에 어떤 이득을 볼 수 없습니다, 그래서 “ApplicationRds”자원에서DependsOn


답변

레코드를 생성 할 때 같은 오류가 발생하는 경우 TTL그렇지 않은 경우 확인 설정을 ALIAS타입 기록 그들이해야하기 때문에, 하지 TLL을 (그것이에서 복사 등을 AliasTarget).


답변