使用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,需在控制台允许范围内配置。