簡體   English   中英

在另一個 AWS 賬戶中使用 Route 53 進行 Terraform

[英]Terraform using Route 53 in another AWS Account

我有一個 terraform 腳本,它部署了一個包含 route53 記錄的微服務(這里我們稱之為myservice )。

此腳本在東京區域運行正常,因為該區域具有myservice所需的所有 AWS 服務。

現在我要把myservice部署到中國寧夏地區的cn-norhthwest-1。

由於AWS中國不存在route53,目前我的解決方案是在普通AWS賬戶(即包含東京、俄亥俄、俄勒岡...區域的AWS賬戶)中手動設置中國myservice的域名。

例如,指向www.myservice.com.cn到的CNAME記錄myservice-ningxia-elb-1234567890.cn-northwest-1.elb.amazonaws.com.cn ,這是在寧夏地區的ELB的域名。

如何使用 terraform 自動化此過程?

這是我的文件夾結構:

.
├── environments
│   ├── ningxia
│   │   ├── main.tf
│   │   └── versions.tf
│   └── tokyo
│       ├── main.tf
│       └── versions.tf
└── modules
    ├── cloud-init.yaml
    ├── outputs.tf
    ├── myservice.tf
    └── variables.tf

我可以通過運行在東京地區創建myservice

cd environments && \
  terraform init && \
  terraform apply

這篇文章表明我們可以使用以下代碼在cn-northwest-1區域創建aws_route53_zone

# configure AWS provider for China region. 
provider "aws" {
  region    = "cn-northwest-1"
  access_key    = AK
  secret_key    = SK

  endpoints {
    route53 = "https://api.route53.cn"
  }
}

# create a route 53 pub zone
resource "aws_route53_zone" "test" {

  name = "bobtest3.cn"
  comment = "try to create a pub zone with terraform in China region v2!"
}

這怎么可能?

我什至在寧夏地區的 AWS 控制台中都找不到 route53。

您可以使用外部數據使用自定義資源,如下所示:

data "external" "dns" {
  program = ["${path.module}/dns.sh"]
  query   = {
    region  = "${var.region}"
    profile = "${lower(var.env)}"
    dns  = "dnsname"
  }
}

只需編寫一個連接到 route53 區域的 cli dns.sh 來創建記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM