调用CreateNatGateway接口创建NAT网关。

使用说明

本接口可以创建增强型公网NAT网关和VPC NAT网关。

在调用本接口时,请了解以下内容:

  • 首次创建NAT网关时,系统会自动创建一个名称为AliyunServiceRoleForNatgw的服务关联角色,并且为该角色添加名称为AliyunServiceRolePolicyForNatgw的权限策略,授予NAT网关拥有访问其他云资源的权限。更多信息,请参见服务关联角色
  • 增强型公网NAT网关创建后,系统会在VPC的路由表中自动添加一条目标网段为0.0.0.0/0,下一跳为NAT网关的路由条目,用于将流量路由到NAT网关。
  • CreateNatGateway接口属于异步接口,即系统会先返回一个NAT网关(公网NAT网关或VPC NAT网关)实例ID,但该NAT网关实例并未创建完成,系统后台的创建任务仍在进行。您可以调用DescribeNatGateways查询NAT网关的状态:
    • 当NAT网关处于Creating状态时,表示NAT网关正在创建中,在该状态下,您只能执行查询操作,不能执行其他操作。
    • 当NAT网关处于Available状态时,表示NAT网关创建完成。NAT网关创建一般需要1~3分钟,请您耐心等待。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateNatGateway

要执行的操作,取值:CreateNatGateway

RegionId String cn-hangzhou

NAT网关所在的地域ID。

您可以通过调用DescribeRegions接口获取地域ID。

VpcId String vpc-bp1di7uewzmtvfuq8****

需要创建NAT网关的VPC的ID。

VSwitchId String vsw-bp1e3se98n9fq8hle****

公网NAT网关所属的交换机的ID。

创建NAT网关时,您必须指定NAT网关所属的交换机,系统会为NAT网关分配一个交换机内的空闲私网IP地址。

  • 如果您要在存量交换机中创建NAT网关,请确保交换机所属的可用区支持创建NAT网关,且交换机有可用的IP。
  • 如果您还未创建交换机,请先在支持创建NAT网关的可用区创建交换机,然后再指定NAT网关所属的交换机。
说明 您可以通过ListEnhanhcedNatGatewayAvailableZones接口查询增强型NAT网关的资源可用区,通过DescribeVSwitches接口查询交换机中的可用IP数。
NatType String Enhanced

公网NAT网关的类型,取值:Enhanced,增强型公网NAT网关。更多信息,请参见增强型公网NAT网关发布公告

NetworkType String internet

创建的NAT网关类型,取值:

  • internet:公网NAT网关。
  • intranet:VPC NAT网关。
InstanceChargeType String PostPaid

NAT网关的付费模式,取值:PostPaid(按量付费),默认值为PostPaid。更多信息,请参见按量付费

Spec String Small

NAT网关的规格,该参数不填。

InternetChargeType String PayByLcu

NAT网关的计费类型,取值为PayByLcu:按使用量计费。

Name String fortest

NAT网关的名称。

名称长度为1~128个字符之间。

如果没有指定该参数,默认使用短划线(-)作为名称。

Description String testnat

NAT网关的描述。

描述长度为1~256个字符之间。

PricingCycle String Month

包年包月,该参数不填。

AutoPay Boolean false

是否自动付费,该参数不填。

Duration String 1

购买时长,该参数不填。

ClientToken String 5A2CFF0E-5718-45B5-9D4D-70B3FF3898

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。

说明 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。
SecurityProtectionEnabled Boolean false

是否开启防火墙功能,取值:

  • false(默认值):不开启。
  • true:开启。
IcmpReplyEnabled Boolean false

是否开启ICMP不代回功能,取值:

  • false(默认值):不开启。
  • true:开启。

返回数据

名称 类型 示例值 描述
NatGatewayId String ngw-112za33e4****

创建的NAT网关的实例ID。

ForwardTableIds List ftb-11tc6xgmv****

DNAT列表。

RequestId String 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3

请求ID。

SnatTableIds List stb-SnatTableIds****

SNAT列表。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateNatGateway
&RegionId=cn-hangzhou
&VpcId= vpc-bp1di7uewzmtvfuq8****
&VSwitchId=vsw-bp1e3se98n9fq8hle****
&NatType=Enhanced
&<公共请求参数>

正常返回示例

XML格式

<CreateNatGatewayResponse>
  <RequestId>2315DEB7-5E92-423A-91F7-4C1EC9AD97C3</RequestId>
  <SnatTableIds>
        <SnatTableId>stb-SnatTableIds****</SnatTableId>
  </SnatTableIds>
  <ForwardTableIds>
        <ForwardTableId>ftb-11tc6xgmv****</ForwardTableId>
  </ForwardTableIds>
  <NatGatewayId>ngw-112za33e4****</NatGatewayId>
</CreateNatGatewayResponse>

JSON格式

{
    "CreateNatGatewayResponse": {
        "RequestId": "2315DEB7-5E92-423A-91F7-4C1EC9AD97C3",
        "SnatTableIds": {
            "SnatTableId": "stb-SnatTableIds****"
        },
        "ForwardTableIds": {
            "ForwardTableId": "ftb-11tc6xgmv****"
        },
        "NatGatewayId": "ngw-112za33e4****"
    }
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidVPCStatus vpc incorrect status. 该 VPC 状态非法,请您检查 VPC 状态是否输入正确。
400 InvalidNatGatewayName.MalFormed NatGateway name is not valid. 网关名称不合法。
400 InvalidNatGatewayDescription.MalFormed NatGateway description is not valid. 网关描述不合法。
400 MissingParameter.BandwidthPackage only support one BandwidthPackage be created with NatGateway. 必须指定一个共享带宽包。
400 MissingParameter Miss mandatory parameter. 缺少必要参数,请您检查必填参数是否都已填后再进行操作。
400 QuotaExceeded.BandwidthPackageIps The specified ipCount exceeded quota. IP数量超过上限,可以在配额管理页面申请增加配额。
400 InvalidParameter.Name.Malformed The specified Name is not valid. 该名称不合法,请您按照正确的格式书写名称。
400 InvalidParameter.Description.Malformed The specified Description is not valid. 该描述不合法。
400 ZONE_NO_AVAILABLE_IP The Zone have no available ip. 该可用区没有可用IP。
400 InvalidParameter.BandwidthPackage.n.ISP.ValueNotSupport The specified ISP of BandwidthPackage is not valid. 该共享带宽包的ISP不合法。
400 InvalidNatGatewayId.NotFound The NatGatewayId not exist. 指定的 NatGatewayId 不存在,请您检查填写的 NatGatewayId 是否正确。
400 VswitchStatusError The VSwitch is creating . 交换机正在创建中。
400 VpcStatusError The Vpc is creating . 正在创建VPC。
400 InvalidParameter.Spec.ValueNotSupported The specified Spec is not valid. 该规格不合法。
400 Forbidden.CheckEntryRuleQuota Route entry quota rule check error. 检查路由条目配额时发生了错误。
400 OperationFailed.VswNotBelongToVpc Operation failed because the specified VSwitch is not bound to the same VPC with NAT gateway. 操作失败因为VSW和NATGW不属于同一个VPC。
400 OperationFailed.EnhancedUserIsUnAuthorized Operation failed because the user is not authorized to create an enhanced NAT gateway. 操作失败因为用户未授权创建增强型NAT网关。
400 OperationUnsupported.PrePaidPyByLcu The operation failed because the subscription NAT gateway does not support the pay-by-LCU billing method. 预付费的NAT网关实例不支持PayByLcu的计费方式。
400 OperationFailed.NormalInventoryNotEnough Standard NAT gateways are no longer offered. You can create enhanced NAT gateways and set the correct natType. 普通型nat网关已经不再支持创建了,请创建的nat网关时设置natType,创建增强型nat。
404 InvalidRegionId.NotFound The specified RegionId does not exist in our records. 指定的RegionId不存在。
404 InvalidVpcId.NotFound Specified value of VpcId is not found in our record. 该 VPC 不存在,请您检查输入的 VPC 是否正确。
404 InvalidZoneId.NotFound Specified value of ZoneId is not exists. 该可用区不存在。
404 InvalidZoneId.NotFound Can not find ZoneId for allocated ip. 该IP的可用区不正确。

访问错误中心查看更多错误码。