全部產品
Search
文件中心

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

更新時間:Jun 18, 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"
    }
  }
}

provider "alicloud" {
  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
  2. 執行如下命令,驗證Terraform文法與配置。

    terraform validate
  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