全部產品
Search
文件中心

:使用Terraform建立套餐、建立網站、添加DNS記錄

更新時間:Mar 17, 2026

網站接入ESA後,需要通過添加DNS記錄的方式將待管理的網域名稱添加至ESA,以確保待加速網域名稱能被正常解析和訪問。本文將為您介紹使用Terraform添加DNS記錄。

涉及的資源

注意事項

  • 中國站帳號與國際站帳號能夠建立的套餐類型存在差異

    • 中國站支援建立的套餐名稱:

      • 免費版:entranceplan

      • 基礎版:basic

      • 標準版:medium

      • 進階版:high

    • 國際站支援建立的套餐名稱:

      • Entrance:entranceplan_intl

      • Pro:basicplan_intl

      • Premium:vipplan_intl

  • 暫不支援通過 Terraform 建立Enterprise套餐,如果您需要購買Enterprise套餐,請聯絡我們

  • 通過 Terraform 建立網站的時候,可以關聯已有的企業版套餐執行個體ID

  • 通過 Terraform 建立套餐的時候,需要根據帳號是中國站帳號還是國際站帳號來設定Terraform Provider資訊

    • 方式1: 設定region參數值

      • 中國站:cn-hangzhou

      • 國際站:ap-southeast-1

    • 方式2: 設定account_type參數值

      • 中國站:Domestic

      • 國際站:International

編寫設定檔

建立一個工作目錄,並按照以下說明分別在工作目錄中建立設定檔,並按照您的實際需求調整代碼中的配置資訊。

定義供應商及Terraform版本

首先需要建立一個名為 providers.tf 的設定檔,然後將以下代碼複製到設定檔中,用於集中管理所有 Provider 配置和版本約束。

terraform {
  required_providers {
    alicloud = {
      source  = "aliyun/alicloud"
      version = "1.266.0"
      region = "ap-southeast-1"
    }
  }
}

定義資源變數

為了提升代碼複用性,進行輸入變數和本地變數聲明,需要建立一個名為 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"
}
# 套餐名稱有效值如下
# entranceplan_intl(Entrance版)、basicplan_intl(Pro版)、vipplan_intl(Premium版)
variable "plan_name" {
  default = "entranceplan_intl"
}
# 網站名稱,需要替換為您的網域名稱
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
}

建立資源

  1. 進入設定檔所在目錄,執行如下命令,初始化Terraform環境。

    terraform init

    image

  2. 執行如下命令,驗證Terraform文法與配置。

    terraform validate

    返回資訊如下圖則表示驗證通過。

    image

  3. 執行如下命令,預覽執行結果。

    terraform plan
  4. 執行如下命令,執行Terraform指令碼。

    terraform apply
  5. 依據提示輸入yes確認執行即可。

驗證結果

查看套餐

  1. 登入ESA控制台,在左側導覽列選擇計費管理 > 套餐管理

  2. 在套餐管理頁面看到新增套餐,如下圖所示。

    image

查看網站

在ESA控制台,選擇網站管理可以看到新增的網站,如下圖所示。

image

查看DNS記錄

  1. 在ESA控制台選擇網站管理,在網站列單擊目標網站。

  2. 在左側導覽列,選擇DNS > 記錄可以看到新增的DNS記錄,如下圖所示。

    image

(可選)清理資源

當您不再需要上述通過Terraform建立或管理的資源時,請運行terraform destroy命令以釋放資源。

terraform destroy