読者です 読者をやめる 読者になる 読者になる

aws-sdk-rubyで `*.example.com` なレコードを取得すると `\052.example.com` になる

某プロジェクトで awspec generate route53 example.com. を実行したのですが、なぜか

describe route53_hosted_zone('example.com.') do
  it { should have_record_set('\052.example.com.').cname('example.com') }
end

なspecが生成されて、「\052???」と調べ始めたのが最初。

端的にいうと、aws-sdk-ruby*.example.com なレコードを、Aws::Route53::Client#list_resource_record_setsで取得すると \052.example.com な文字列になる状況です。

で、@udzura さんと @nagachika さんという豪華布陣にも見てもらいつつ調べた結果が、

AWSAPIのレスポンス自体が\052.example.comになっているかも

という残念なことに。。。

AWS CLIでも

$ aws route53 list-resource-record-sets --hosted-zone-id AB1234CDEFGHIJ --profile xxx

...
{
    "ResourceRecords": [
        {
            "Value": "example.com"
        }
    ],
    "Type": "CNAME",
    "Name": "\\052.example.com.",
    "TTL": 300
 },
...

という。。。

というわけで

対応しました

route53_hosted_zone support `*` and `\052` as wildcard record by k1LoW · Pull Request #76 · k1LoW/awspec · GitHub

Fix wildcard record format when `terraforming r53r` by k1LoW · Pull Request #139 · dtan4/terraforming · GitHub

こちらで直接お礼を言おうと思います

fukuokarb.doorkeeper.jp