本文为您演示如何通过Terraform创建NAT 网关实例。
支持的资源列表
以下是支持Terraform编排NAT 网关的部分资源和数据源清单。如果您还不了解Terraform,请参见什么是Terraform。
资源类型 | 资源链接 | 说明 |
Resource | 创建NAT 网关。 | |
创建SNAT条目。 | ||
创建NAT IP。 | ||
创建NAT IP地址段。 | ||
Data Sources | NAT 网关列表。 | |
SNAT条目列表。 | ||
NAT IP列表。 | ||
NAT IP地址段列表。 |
权限说明
执行Terraform模板需要RAM用户权限,我们需要创建一个RAM用户,并获取AccessKey,添加权限策略。该AccessKey会配置为Terraform工具的环境变量。您需要为RAM用户添加以下权限:
AliyunVPCFullAccess:管理专有网络 VPC的权限。
AliyunNATGatewayFullAccess:管理NAT 网关的权限。
操作步骤
安装Terraform
在本地安装和配置Terraform,请参见在本地安装和配置Terraform。
安装完成后,您可以打开命令行终端,输入
terraform version
,看到返回版本信息表示已成功安装。如果您不想安装Terraform,可以使用阿里云提供的在线服务Cloud Shell,其中内置了Terraform的运行环境。
编写模板
创建一个名为main.tf
文件,填写以下内容,用于创建NAT 网关实例。
variable "name" {
default = "tf_example"
}
data "alicloud_enhanced_nat_available_zones" "default" {
}
resource "alicloud_vpc" "default" {
vpc_name = var.name
cidr_block = "10.0.0.0/8"
}
resource "alicloud_vswitch" "default" {
vswitch_name = var.name
zone_id = data.alicloud_enhanced_nat_available_zones.default.zones.0.zone_id
cidr_block = "10.10.0.0/20"
vpc_id = alicloud_vpc.default.id
}
resource "alicloud_nat_gateway" "default" {
vpc_id = alicloud_vpc.default.id
nat_gateway_name = var.name
payment_type = "PayAsYouGo"
vswitch_id = alicloud_vswitch.default.id
nat_type = "Enhanced"
}
运行模板
该示例以Windows操作系统为例,在其他操作系统中,运行命令的具体方式可能会有所不同。
初始化加载模块,包括Provider等模块。
terraform init
验证模板语法是否正确。
terraform validate
创建执行计划。
terraform plan
本案例部署时的部分返回日志。
部署模板。
terraform apply
本案例部署时的部分返回日志。
输入
yes
,按Enter键,实例创建成功。您也可以通过OpenAPI、SDK或者在公网NAT 网关控制台,查看创建的公网NAT 网关实例。