Terraform集成示例

本文为您演示如何通过Terraform创建NAT 网关实例。

支持的资源列表

以下是支持Terraform编排NAT 网关的部分资源和数据源清单。如果您还不了解Terraform,请参见什么是Terraform

资源类型

资源链接

说明

Resource

alicloud_nat_gateway

创建NAT 网关

alicloud_snat_entry

创建SNAT条目。

alicloud_vpc_nat_ip

创建NAT IP。

alicloud_vpc_nat_ip_cidr

创建NAT IP地址段。

Data Sources

alicloud_nat_gateways

NAT 网关列表。

alicloud_snat_entries

SNAT条目列表。

alicloud_vpc_nat_ips

NAT IP列表。

alicloud_vpc_nat_ip_cidrs

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操作系统为例,在其他操作系统中,运行命令的具体方式可能会有所不同。

  1. 初始化加载模块,包括Provider等模块。

    terraform init

    image

  2. 验证模板语法是否正确。

    terraform validate

    image

  3. 创建执行计划。

    terraform plan

    本案例部署时的部分返回日志。

    image

  4. 部署模板。

    terraform apply

    本案例部署时的部分返回日志。

    image

  5. 输入yes,按Enter键,实例创建成功。

    image

  6. 您也可以通过OpenAPI、SDK或者在公网NAT 网关控制台,查看创建的公网NAT 网关实例。

    image