以 CLI 命令或 Terraform HCL 的形式,从 DNS 记录生成 Rout 53、Azure DNS 和 GCP 云 DNS 区域配置。
| Type | Name | Value | TTL | Priority | Alias | |
|---|---|---|---|---|---|---|
# Step 1: Get your hosted zone ID
# aws route53 list-hosted-zones --query "HostedZones[?Name=='example.com.'].Id" --output text
aws route53 change-resource-record-sets \
--hosted-zone-id $ZONE_ID \
--change-batch '{
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "1.2.3.4"
}
]
}
},
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "example.com.",
"Type": "MX",
"TTL": 300,
"ResourceRecords": [
{
"Value": "10 mail.example.com."
}
]
}
},
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "example.com.",
"Type": "TXT",
"TTL": 300,
"ResourceRecords": [
{
"Value": "\"v=spf1 include:_spf.google.com ~all\""
}
]
}
},
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "CNAME",
"TTL": 300,
"ResourceRecords": [
{
"Value": "example.com"
}
]
}
}
]
}'云 DNS 区域生成器可将 DNS 记录表转换为可直接运行的 CLI 命令或 Terraform HCL,适用于 AWS Route 53、Azure DNS 和 GCP Cloud DNS。每个提供商都有不同的 CLI 语法、资源命名约定和 Terraform 提供商架构。此工具可处理这些差异,确保同一张记录表能够为所有三个提供商生成正确的输出。
输入您的域名,选择提供商,并使用类型、名称、值、TTL 和优先级列构建记录表。在 CLI 和 Terraform 选项卡之间切换以获取相应的输出。Route 53 CLI 输出使用 change-resource-record-sets 批处理格式。Azure CLI 输出调用 az network dns record-set per record。GCP CLI 使用 gcloud dns record-sets transaction 命令。
Route 53 Terraform 使用数据源查找来获取托管区域 ID,而不是使用硬编码值。Azure Terraform 要求每个 DNS 资源都包含 resource_group_name;生成器会将 azurerm_resource_group.main.name 作为引用。GCP Terraform 包含 google_dns_managed_zone 资源,该资源必须在任何记录集之前存在。别名记录(仅限 Route 53)会生成别名块,而不是 TTL 和记录字段。