全部產品
Search
文件中心

Edge Security Acceleration:使用Terraform配置等候室

更新時間:Apr 04, 2026

使用Terraform可以快速完成等候室配置,通過流量排隊機制保護來源站點免受突發流量衝擊。

安裝Terraform並配置許可權

在本地安裝和配置Terraform

您可以參考安裝和配置Terraform,在本地使用Terraform。

  • 由於阿里雲帳號(主帳號)擁有資源的所有許可權,其AccessKey一旦泄露風險巨大,所以建議您使用滿足最小化許可權需求的RAM使用者的AccessKey。具體操作方式請參見建立AccessKey

  • 建立環境變數,用於存放身份認證資訊。

    AccessKey管理頁面上建立和查看您的AccessKey。

    若無對應環境變數,在執行terraform模板時無法確認身份資訊,將會導致調用失敗。

使用線上服務(免安裝和許可權配置)

如果您不想安裝Terraform,可以直接使用線上服務Cloud Shell

阿里雲Cloud Shell是一款協助您營運的免費產品,預裝了Terraform的組件,並配置好身份憑證(Credentials)。因此您可直接在Cloud Shell中運行Terraform的命令。更多資訊,請參見使用Terraform快速建立資源

重要

通過Cloud Shell使用Terraform時,由於其銷毀特性會導致資料丟失,因此建議您使用Cloud Shell做簡單、快速的操作,例如調試。更多使用限制,請參見使用限制

涉及的資源

配置等候室

  1. 建立一個名為 main.tf 的設定檔,然後將以下代碼複製到設定檔中,用於配置等候室。

    # 1. 查詢企業版 ESA 執行個體
    data "alicloud_esa_sites" "default" {
      plan_subscribe_type = "enterpriseplan"  # 篩選企業版執行個體
    }
    
    # 2. 建立網站
    resource "alicloud_esa_site" "resource_Site_example" {
      site_name   = "{{DOMAIN}}"  # 替換為實際網域名稱,如 example.com
      instance_id = data.alicloud_esa_sites.default.sites.0.instance_id
      coverage    = "overseas"  # 海外加速
      access_type = "NS"         # NS 接入方式
    }
    
    # 3. 建立等候室
    resource "alicloud_esa_waiting_room" "default" {
      site_id                        = alicloud_esa_site.resource_Site_example.id
      waiting_room_name              = "waitingroom_example"  # 等候室名稱
      description                    = "example"
      status                         = "off"  # 建立後預設關閉,需手動開啟
      waiting_room_type              = "default"
    
      # 排隊策略配置
      queuing_method                 = "fifo"  # 先進先出排隊演算法
      session_duration               = "5"    # 會話時間長度(分鐘)
      total_active_users             = "300"  # 最大並發使用者數
      new_users_per_minute           = "200"  # 每分鐘允許存取人數
    
      # 匹配規則:觸發排隊的條件
      host_name_and_path {
        domain    = "sub_domain.com"         # 主網域名稱
        path      = "/example"                # 路徑匹配
        subdomain = "example_sub_domain.com."  # 子網域名稱
      }
    
      # 頁面顯示配置
      language                       = "zhcn"  # 排隊頁面語言:簡體中文
      custom_page_html               = ""      # 空表示使用預設排隊頁面
      queuing_status_code            = "200"   # 排隊時返回的HTTP狀態代碼
      cookie_name                    = "__aliwaitingroom_example"  # Cookie名稱
    
      # 進階選項
      queue_all_enable               = "off"  # 是否全員排隊
      disable_session_renewal_enable = "off"  # 是否禁用會話續期
      json_response_enable           = "off"  # 是否返回JSON響應
    }
    說明

    請根據實際情況修改代碼中的預留位置:將 DOMAIN 替換為您的實際網域名稱,將 host_name_and_path 中的網域名稱和路徑替換為實際觸發排隊的條件。關鍵參數說明請參見本文末尾的相關參考章節。

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

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

    terraform validate
  4. 執行如下命令,預覽執行結果。

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

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

驗證結果

執行terraform show命令

在 terraform apply 成功後、清理資源前,可在工作目錄執行以下命令核對資源狀態。

terraform show

登入控制台查看

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

  2. 在左側導覽列,選擇流量 > 等候室

  3. 在等候室頁面可以看到新建立的等候室規則,包括等候室名稱、狀態、排隊策略、會話時間長度、並發限制等配置資訊。

相關參考

本文程式碼範例中關鍵參數的說明如下:

參數名稱

樣本值

說明

plan_subscribe_type

"enterpriseplan"

篩選企業版ESA執行個體,用於擷取可用的執行個體ID。

site_name

DOMAIN

網站網域名稱。替換為您的實際網域名稱,如 example.com

waiting_room_name

"waitingroom_example"

等候室名稱,在控制台顯示的標識名稱。

status

"off"

等候室運行狀態。off 表示關閉,on 表示開啟。建立後預設關閉,需手動開啟才生效。

queuing_method

"fifo"

排隊演算法。fifo 表示先進先出,先到的使用者先被允許存取。

session_duration

"5"

會話時間長度(分鐘)。使用者獲得通行資格後的有效時間,在此期間重新整理頁面無需重新排隊。

total_active_users

"300"

總活躍使用者上限。系統允許的最大並發數(包含正在排隊和已允許存取的使用者),超過此數新使用者進入隊列。

new_users_per_minute

"200"

每分鐘允許存取人數。流量整型速率,每分鐘最多允許該數量的新使用者從隊列進入來源站點,防止來源站點瞬間過載。

host_name_and_path.domain

"sub_domain.com"

匹配的主網域名稱。只有訪問該網域名稱的請求才會觸發排隊。

host_name_and_path.path

"/example"

匹配的路徑。只有訪問該路徑的請求才會觸發排隊。

host_name_and_path.subdomain

"example_sub_domain.com."

匹配的子網域名稱。可選配置,用於更精確的匹配條件。

language

"zhcn"

排隊頁面語言。zhcn 表示簡體中文,en 表示英語。

custom_page_html

""

自訂排隊頁面HTML代碼。為空白表示使用預設排隊頁面模板,可填入HTML代碼展示品牌化排隊頁。

queuing_status_code

"200"

使用者處於排隊狀態時返回的HTTP狀態代碼。設為 200 可配合前端實現平滑排隊。

cookie_name

"__aliwaitingroom_example"

用於標識使用者排隊位置和工作階段狀態的Cookie名稱。

queue_all_enable

"off"

全員排隊開關。off 表示僅在流量超過閾值時觸發排隊,on 表示所有使用者均需排隊。

disable_session_renewal_enable

"off"

禁用會話續期開關。off 表示允許使用者在會話有效期間內重新整理頁面自動續期,on 表示重新整理可能導致重新排隊。

json_response_enable

"off"

JSON響應模式。off 表示返回HTML頁面,on 表示返回JSON格式排隊資訊,適用於API介面情境。

不同套餐的支援情況

說明

目前等候室功能僅PremiumEnterprise套餐支援。部分功能需要您在企業版基礎上聯絡我們開通等候室Pro版進行升級或使用。

功能項

Entrance

Pro

Premium

Enterprise

等候室基礎功能

不支援

不支援

支援

支援

等候室數量

不支援

不支援

1個

預設支援1個,開通等候室Pro版以後可以支援最大10個。

配置多個主機名稱和路徑

不支援

不支援

不支援

預設支援1個,開通等候室Pro版以後可以支援最大50個。

自訂模板

不支援

不支援

不支援

開通等候室Pro版以後可以支援。

禁用會話續訂

不支援

不支援

不支援

開通等候室Pro版以後可以支援。

JSON友好響應

不支援

不支援

不支援

開通等候室Pro版以後可以支援。

自訂隊列狀態碼

不支援

不支援

支援

支援

排隊方法

不支援

不支援

僅支援FIFO方式

預設支援FIFO模式,開通等候室Pro版以後支援所有排隊方式。

等候室規則

不支援

不支援

不支援

開通等候室Pro版以後可以支援最大5條。

等候室事件

不支援

不支援

不支援

開通等候室Pro版以後可以支援最大5個。

SEO爬蟲旁路

不支援

不支援

支援

支援