使用Terraform可以快速為網站開啟智能路由、HTTP/2 回源、WebSocket、gRPC 及上傳大小等網路側最佳化能力。
安裝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做簡單、快速的操作,例如調試。更多使用限制,請參見使用限制。
涉及的資源
查詢網站資訊:alicloud_esa_sites(資料來源,用於引用已有網站)
配置網路最佳化規則:alicloud_esa_network_optimization
配置網路最佳化規則
建立一個名為
main.tf的設定檔,然後將以下代碼複製到設定檔中,用於為網站建立一條網路最佳化規則。# 1. 輸入需要進行配置的網站名稱 data "alicloud_esa_sites" "default" { site_name = "DOMAIN" # 將在 DOMAIN 處填入實際已接入 ESA 的網站,如 example.com } # 2. 配置網路最佳化規則 resource "alicloud_esa_network_optimization" "default" { site_id = data.alicloud_esa_sites.default.sites[0].site_id # 要配置的網站 id rule_name = "example2" # 規則名 rule_enable = "on" # 規則開關配置為開啟 rule = "true" # 匹配規則內容,為 true 時為所有傳入請求 smart_routing = "on" # 智能路由支援全球節點網路的即時探測,啟用後基於優選路由與協議棧最佳化等,更快速、穩定傳輸使用者請求,降低全球延遲與失敗率 http2_origin = "on" # 允許 ESA 節點使用 HTTP/2 協議向來源站點發送請求 websocket = "on" # 來源站點若支援 ws:// 或 wss://,ESA 預設允許用戶端建立 WebSocket 並支援回源,一般無需額外配置 grpc = "on" # gRPC:基於 HTTP/2 的 RPC 架構,Protobuf 序列化,跨語言跨平台,可減少頻寬與延遲 upload_max_filesize = "300" # 單次請求上傳上限,單位 MB;預設 300,範圍為100~500 }進入設定檔所在目錄,執行如下命令,初始化Terraform環境。
terraform init執行如下命令,驗證Terraform文法與配置。
terraform validate執行如下命令,預覽執行結果。
terraform plan執行如下命令,執行Terraform指令碼。
terraform apply依據提示輸入
yes確認執行即可。
驗證結果
執行 terraform show 命令
您可以在工作目錄中,使用以下命令查詢 Terraform 已建立資源的詳細資料:
terraform show登入控制台查看
在ESA控制台選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇。在對應子功能頁查看已建立的網路最佳化規則及配置。
(可選)清理資源
當您不再需要上述通過Terraform建立或管理的資源時,請運行terraform destroy命令以釋放資源。
terraform destroy相關參考
參數說明
各開關與上傳大小等欄位的語義與取值範圍,請以 alicloud_esa_network_optimization 官方文檔為準;樣本中 upload_max_filesize 單位為 MB,需在控制台允許範圍內配置。