Domain-Name-System

如何將靜態條目添加到 AWS Route53 Auto Naming 託管區域?

  • August 29, 2018

我正在使用 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

基本上:

  1. 使用自動發現創建與先前存在的公共 Route53 託管區域無關的命名空間
  2. 使用以下 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
       }
     }
   }
 ]
}

引用自:https://serverfault.com/questions/926901