您可以通过Terraform配置域名接入规则。本文以新增域名接入规则为例进行介绍。
当前示例代码支持一键运行,您可以直接运行代码。一键运行
前提条件
已购买DDoS高防实例。具体操作,请参见通过Terraform购买并管理DDoS高防实例。
由于阿里云账号(主账号)具有资源的所有权限,一旦发生泄露将面临重大风险。建议您使用RAM用户,并为该RAM用户创建AccessKey,具体操作方式请参见创建RAM用户和创建AccessKey。
为运行Terraform命令的RAM用户绑定以下最小权限策略,以获取管理本示例所涉及资源的权限。更多信息,请参见为RAM用户授权。
此权限策略允许用户在特定DDoS高防实例中添加域名配置,并查看域名配置。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ddoscoo:DescribeDomain", "ddoscoo:DescribeDomains", "ddoscoo:AddDomain" ], "Resource": "acs:ddoscoo:<region>:<account-id>:domain/*" } ] }
准备Terraform运行环境,您可以选择以下任一方式来使用Terraform。
在Terraform Explorer中使用Terraform:阿里云提供了Terraform的在线运行环境,您无需安装Terraform,登录后即可在线使用和体验Terraform。适用于零成本、快速、便捷地体验和调试Terraform的场景。
Cloud Shell:阿里云Cloud Shell中预装了Terraform的组件,并已配置好身份凭证,您可直接在Cloud Shell中运行Terraform的命令。适用于低成本、快速、便捷地访问和使用Terraform的场景。
在本地安装和配置Terraform:适用于网络连接较差或需要自定义开发环境的场景。
使用的资源
alicloud_ddoscoo_domain_resource:管理和配置阿里云DDoS防护与域名相关的资源的一个组件。
操作步骤
创建一个工作目录,并且在工作目录中创建以下名为
main.tf
的配置文件。main.tf:Terraform主文件,定义了将要部署的资源。以在实例中添加域名配置为例。
重要请谨慎管理实例的生命周期,避免不必要的费用。
provider "alicloud" { region = "cn-hangzhou" } variable "name" { default = "tf-example" } variable "domain" { default = "tf-example.alibaba.com"# 替换为您备案通过的域名 } resource "alicloud_ddoscoo_instance" "default" { name = var.name bandwidth = "30" base_bandwidth = "30" service_bandwidth = "100" port_count = "50" domain_count = "50" period = "1" product_type = "ddoscoo" } resource "alicloud_ddoscoo_domain_resource" "default" { domain = var.domain rs_type = 0 instance_ids = [alicloud_ddoscoo_instance.default.id] real_servers = ["177.167.XX.XX"]# 替换为您源站服务器地址信息。 https_ext = "{\"Http2\":1,\"Http2https\":0,\"Https2http\":0}" proxy_types { proxy_ports = [443] proxy_type = "https" } }
执行
terraform init
命令初始化Terraform运行环境。预期输出:
执行
terraform apply
命令。在执行过程中,根据提示输入yes
并按下Enter键,等待命令执行完成,若出现以下信息,则表示授权完成。预期结果:
操作验证
执行terraform show命令
您可以使用以下命令查询Terraform已创建的资源详细信息:
terraform show
DDoS高防(中国内地)控制台
登录DDoS高防控制台,查看域名接入。
清理资源
当您不再需要上述通过Terraform创建或管理的资源时,请运行以下命令以释放资源。关于terraform destroy
的更多信息,请参见Terraform常用命令。
terraform destroy
完整代码示例
当前示例代码支持一键运行,您可以直接运行代码。一键运行
provider "alicloud" {
region = "cn-hangzhou"
}
variable "name" {
default = "tf-example"
}
variable "domain" {
default = "tf-example.alibaba.com"# 替换为您备案通过的域名
}
resource "alicloud_ddoscoo_instance" "default" {
name = var.name
bandwidth = "30"
base_bandwidth = "30"
service_bandwidth = "100"
port_count = "50"
domain_count = "50"
period = "1"
product_type = "ddoscoo"
}
resource "alicloud_ddoscoo_domain_resource" "default" {
domain = var.domain
rs_type = 0
instance_ids = [alicloud_ddoscoo_instance.default.id]
real_servers = ["177.167.XX.XX"]# 替换为您源站服务器地址信息。
https_ext = "{\"Http2\":1,\"Http2https\":0,\"Https2http\":0}"
proxy_types {
proxy_ports = [443]
proxy_type = "https"
}
}
相关文档
Terrafrom介绍,请参见Terraform产品介绍。
当您遇到由于网络延迟等原因造成的 terraform init 超时,导致无法正常下载 Provider 等情况时,请参见Terraform Init 加速方案配置。