AWS CloudFormationがAWS :: Route53 :: RecordSetを作成しようとすると「無効なリクエスト」を返します


13

私はこれで迷っています。

99%の時間、CloudFormationは操作可能なデバッグメッセージを提供するのに非常に優れていますが、特にリソースが非常に単純な場合、「Invalid request」によって困惑しました。

これは私に問題を与えているリソースと言われています(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スタックにこのリソースを追加することです。これはレコード用です(必要に応じてリソーステンプレートも喜んで投稿します、特別なものはありません) 。DatabaseAWS::RDS::DBInstance

「無効なリクエスト」が表示される理由はありますか?

ありがとう。

編集:私はこれを試しましたがTTL、同じエラーがありませんでした。

回答:



1

TTLとDependsOnを超えて、主なアイデアは、システムが存在しない参照を使用してレコードセットを作成しようとしないことを確認することです。

そのため、DependsOnは存在するだけでなく、RecordSetGroup定義で参照されているすべてのリソース(ロードバランサー、他のDNSエントリ、ENIなど)をリストする必要があります。これにより、前提条件が満たされるまでcloudformationがDNSレコードの作成を遅らせることが保証されます。


0

私は同様の問題を抱えており、TTLプロパティを設定しただけで正常に動作しTTLますが、そのようなレコードセットにはプロパティが必須のようです。

私が使用していないDependsOn、レコードセットが依存するよう"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],「ApplicationRds」リソースから私が使用する任意のゲインが表示されないので、DependsOn


0

レコードを作成するときに同じエラーが起こっている場合に行う必要がありTTLそうでないかどうかを確認、セットのALIAS型、レコード、彼らがしなければならないとして、ない TLLを持っている(それはからコピーされるようにAliasTarget)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.