Domain-Name-System
如何將靜態條目添加到 AWS Route53 Auto Naming 託管區域?
我正在使用 Amazon ECS (Docker) 執行我們的一些後端 REST 服務,它們在每次重啟時都會更改其公共 IP。
當新的後端實例啟動時,我正在使用 AWS Route 53 Auto Naming(又名 servicediscovery)在 DNS 上註冊新的 A 記錄。
除了後端使用 HTTP 外,一切正常。我希望用 HTTPS 保護它們,我一直在尋找Let’s Encrypt / Certbot,問題就來了。
我希望為託管區域中的所有名稱獲取萬用字元證書,比如說 *.aws.example.com,但我需要在託管區域上添加驗證 TEXT 記錄,這是不可能的。
我得到的錯誤資訊是:
資源 hostszone/Z1R8P3NTRAIWDS 只能通過 servicediscovery.amazonaws.com 進行管理(arn:aws:servicediscovery:eu-west-1:263810592360:namespace/ns-cuqs46hqusim4jih)
如何將一些靜態記錄添加到由服務發現管理的託管區域?
我終於設法使用文件頁面中“將服務發現與現有託管區域一起使用”部分的過程解決了我的問題: https://docs.aws.amazon.com/Route53/latest/APIReference/overview-service-discovery。 html
基本上:
- 使用自動發現創建與先前存在的公共 Route53 託管區域無關的命名空間
- 使用以下 aws-cli 命令將自動發現記錄連結到公共 Route53 託管區域
aws route53 change-resource-record-sets --hosted-zone-id existing-hosted-zone-id --change-batch file://path-to-text-file
文本文件是這樣組成的:
{ "Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Type":"A", "Name":"record-name-in-existing-hosted-zone", "AliasTarget": { "DNSName":"record-name-in-new-hosted-zone", "HostedZoneId":"service-discovery-hosted-zone-id", "EvaluateTargetHealth":true } } } ] }