使用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做简单、快速的操作,例如调试。更多使用限制,请参见使用限制。
涉及的资源
创建站点资源:alicloud_esa_site
生成随机数:random_integer(用于生成测试域名)
配置站点开发模式
创建一个工作目录,并按照以下说明分别在工作目录中创建配置文件,并按照您的实际需求调整代码中的配置信息。
定义供应商及Terraform版本
首先需要创建一个名为 providers.tf 的配置文件,然后将以下代码复制到配置文件中,用于集中管理所有 Provider 配置和版本约束。
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "1.266.0"
region = "ap-southeast-1"
}
}
}定义资源
创建一个名为
main.tf的配置文件,然后将以下代码复制到配置文件中,用于创建启用了开发模式的站点。# 1. 购买站点套餐 resource "alicloud_esa_rate_plan_instance" "default" { type = "NS" # 站点接入类型:NS(域名服务器接入)或 CNAME auto_renew = true # 是否自动续费 period = "1" # 购买周期(单位:月) coverage = "overseas" # 加速区域,详细说明请参见本文"参数说明"章节 auto_pay = true # 自动支付 plan_name = "basic" # 套餐名称,详细说明请参见本文"参数说明"章节 payment_type = "Subscription" #付费类型 } # 2. 生成随机数(用于生成唯一的测试域名) resource "random_integer" "default" { min = 10000 max = 99999 } # 3. 创建站点并启用开发模式 resource "alicloud_esa_site" "default" { site_name = "bcd${random_integer.default.result}.com" # 站点名称(域名),生产环境请替换为实际域名 coverage = "overseas" # 加速区域 access_type = "NS" # 站点接入类型:NS 或 CNAME instance_id = alicloud_esa_rate_plan_instance.default.id # 套餐ID development_mode = "on" # 启用开发模式,详细说明请参见本文"参数说明"章节 }进入配置文件所在目录,执行如下命令,初始化Terraform环境。
terraform init
执行如下命令,验证Terraform语法与配置。
terraform validate返回信息如下图则表示验证通过。

执行如下命令,预览执行结果。
terraform plan执行如下命令,执行Terraform脚本。
terraform apply依据提示输入
yes确认执行即可。
验证结果
执行terraform show命令
您可以在工作目录中,使用以下命令查询Terraform已创建资源的详细信息:
terraform show登录控制台查看
在ESA控制台选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
在配置页面可以看到新创建的缓存配置详情。
(可选)清理资源
当您不再需要上述通过Terraform创建或管理的资源时,请运行terraform destroy命令以释放资源。
terraform destroy相关参考
套餐类型说明
Terraform的 alicloud_esa_rate_plan_instance资源中,plan_name 字段的取值说明如下表所示。
参数值 | 套餐名称 | 说明 |
| Entrance | 适用于测试和小规模业务场景,提供基础的加速和防护能力。 |
| Pro | 推荐配置,适用于中小型企业网站和应用。 |
| Enterprise | 适用于中大型企业,提供更高的性能和安全防护能力。 |
参数说明
Terraform的 alicloud_esa_site资源中,development_mode 字段的取值说明如下表所示。
参数值 | 功能说明 | 说明 |
| 启用开发模式 | 静态资源请求将绕过ESA节点的缓存组件,直接访问源站。适用于调试场景,便于对比源站和缓存后的访问效果。 |
| 禁用开发模式(默认) | 静态资源请求正常通过边缘节点缓存处理,按照缓存策略返回内容。 |
使用场景
开发模式适用于以下场景:
源站内容调试:当您需要确保客户端立即获取源站最新静态资源时,可以启用开发模式。
效果对比测试:便于对比源站直接访问和通过ESA缓存访问的效果差异。
快速验证变更:源站内容更新后,无需等待缓存过期或手动刷新缓存,即可立即验证变更效果。
开发模式会导致所有静态资源请求直接回源,可能增加源站负载和响应时间。仅在开发调试阶段使用,生产环境请务必关闭。