站点接入ESA后,需要通过添加DNS记录的方式将待管理的域名添加至ESA,以确保待加速域名能被正常解析和访问。本文将为您介绍使用Terraform添加DNS记录。
您可以参考以下简单的配置流程学习如何使用Terraform为ESA站点添加DNS记录。
涉及的资源
添加站点资源:alicloud_esa_site
添加DNS记录资源:alicloud_esa_record
说明
Terraform方式不支持创建企业版,如果您需要购买企业版套餐,请联系我们。
编写配置文件
创建一个工作目录,并按照以下说明分别在工作目录中创建配置文件,并按照您的实际需求调整代码中的配置信息。
定义供应商及Terraform版本
首先需要创建一个名为 providers.tf
的配置文件,然后将以下代码复制到配置文件中,用于集中管理所有 Provider 配置和版本约束。
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "1.245.0"
}
}
}
定义资源变量
为了提升代码复用性,进行输入变量和本地变量声明,需要创建一个名为 variables.tf
的配置文件,并将以下代码复制到配置文件中。
# 站点的接入方式,可选CNAME和NS两种
variable "site_type" {
default = "NS"
}
# 付费方式,有效值Subscription,不支持其他值
variable "payment_type" {
default = "Subscription"
}
# 服务区域,取值如下
# domestic(中国内地)、overseas(全球不包含中国内地)、global(全球)
variable "coverage_name" {
default = "overseas"
}
# 是否自动续费
variable "auto_pay" {
default = "true"
}
# 套餐名称有效值如下
# 中国站:basic(基础版)、medium(标准版)、high(高级版)
#国际站:entranceplan_intl: Entrance版、basicplan_intl: Pro版、vipplan_intl: Premium版
variable "plan_name" {
default = "high"
}
# 站点名称,需要替换为您的域名
variable "site_name" {
default = "aliyundoc.com"
}
# 源站值,您的源站域名
variable "record_value" {
default = "www.example.com"
}
# 回源端口,您源站的端口号
variable "record_port" {
default = "80"
}
# DNS记录值,即加速域名
variable "record_name" {
default = "_udp._sip.aliyundoc.com"
}
# DNS记录类型
variable "record_type" {
default = "SRV"
}
定义资源
最后创建一个名为 main.tf
的配置文件并将以下代码复制到配置文件中,作为各资源声明主入口。
# 创建套餐
resource "alicloud_esa_rate_plan_instance" "my_plan" {
type = var.site_type
auto_renew = "false"
period = "1"
payment_type = var.payment_type
coverage = var.coverage_name
auto_pay = var.auto_pay
plan_name = var.plan_name
}
# 创建站点
resource "alicloud_esa_site" "my_site" {
site_name = var.site_name
instance_id = alicloud_esa_rate_plan_instance.my_plan.id
coverage = var.coverage_name
access_type = var.site_type
}
# 添加DNS记录
resource "alicloud_esa_record" "my_record" {
data {
value = var.record_value
weight = "1"
priority = "1"
port = var.record_port
}
ttl = "100"
record_name = var.record_name
comment = "This is a remark"
site_id = alicloud_esa_site.my_site.id
record_type = var.record_type
}
创建资源
执行如下命令,初始化Terraform环境。
terraform init
执行如下命令,验证Terraform语法与配置。
terraform validate
返回信息如下图则表示验证通过。
执行如下命令,预览执行结果。
terraform plan
执行如下命令,执行Terraform脚本。
terraform apply
验证结果
查看套餐
登录ESA控制台,在左侧导航栏选择 。
在套餐管理页面看到新增套餐,如下图所示。
查看站点
在ESA控制台,选择站点管理。可以看到新增的站点,如下图所示。
查看DNS记录
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择可以看到新增的DNS记录,如下图所示。 。
(可选)清理资源
当您不再需要上述通过Terraform创建或管理的资源时,请运行terraform destroy
命令以释放资源。
terraform destroy
该文章对您有帮助吗?