调用CreateSnatEntry接口在SNAT列表中添加SNAT条目。
API描述
调用本接口添加SNAT条目时,请注意:
- CreateSnatEntry接口属于异步接口,即系统会先返回一个SNAT条目ID,但该SNAT条目并未添加完成,系统后台的添加任务仍在进行。您可以调用DescribeSnatTableEntries查询SNAT条目的状态:
- 当SNAT条目处于Pending状态时,表示SNAT条目正在添加中,在该状态下,您只能执行查询操作,不能执行其他操作。
- 当SNAT条目处于Available状态时,表示SNAT条目添加完成。
- SNAT条目中指定的交换机和ECS实例必须在NAT网关所属的VPC内。
- 每个交换机和ECS实例只能属于一个SNAT条目。
- 如果交换机中存在HAVIP实例,则无法添加SNAT条目。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateSnatEntry | 要执行的操作,取值:CreateSnatEntry。 |
RegionId | String | 是 | cn-hangzhou | NAT网关所在的地域ID。 您可以通过调用DescribeRegions接口获取地域ID。 |
SnatIp | String | 是 | 47.98.XX.XX | SNAT条目中的EIP,多个EIP之间用半角逗号(,)隔开。
说明 指定多个EIP配置SNAT IP地址池时,业务连接会通过哈希算法分配到多个EIP,由于每个连接的流量不同,可能会出现多EIP业务流量不均匀的情况,建议您将每个EIP都加入到同一个共享带宽中以避免单EIP带宽达到上限导致业务受损。
|
SnatTableId | String | 是 | stb-bp190wu8io1vgev**** | SNAT表的ID。 |
SourceVSwitchId | String | 否 | vsw-bp1nhx2s9ui5o**** | 需要公网访问的交换机的ID。 |
SourceCIDR | String | 否 | 10.1.1.0/24 | VPC、交换机或ECS实例的网段,还可以输入任意网段。
如果SnatIp仅指定了一个公网IP,ECS实例使用指定的公网IP访问互联网。 如果SnatIp指定了多个公网IP,ECS实例随机使用SnatIp中的公网IP访问互联网。 此参数和SourceVSwtichId参数互斥,不能同时出现。如果指定了SourceVSwitchId,则不能指定SourceCIDR参数。如果指定了SourceCIDR参数,则不能指定SourceVSwitchId参数。 |
SnatEntryName | String | 否 | SnatEntry-1 | SNAT条目的名称。 长度为2~128个字符,必须以大小写字母或中文开头,但不能以 |
ClientToken | String | 否 | 02fb3da4-130e-11e9-8e44**** | 保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。 |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
SnatEntryId | String | snat-kmd6nv8fy**** | SNAT条目ID。 |
RequestId | String | 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3 | 请求ID。 |
示例
请求示例
http(s)://[Endpoint]/?Action=CreateSnatEntry &RegionId=cn-hangzhou &SnatIp=47.XX.XX.98 &SnatTableId=stb-bp190wu8io1vgev**** &<公共请求参数>
正常返回示例
XML
格式
<CreateSnatEntryResponse> <RequestId>2315DEB7-5E92-423A-91F7-4C1EC9AD97C3</RequestId> <SnatEntryId>snat-119smw5tkx****</SnatEntryId> </CreateSnatEntryResponse>
JSON
格式
{ "SnatEntryId": "snat-kmd6nv8fyx****", "RequestId": "2315DEB7-5E92-423A-91F7-4C1EC9AD97C3" }
错误码
HttpCode | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | Forbidden.SourceVSwitchId.IncludeHaVip | There is some HaVips under specified VSwitch | 该交换机下有关联的HAVIP。 |
400 | InvalidSnatIp.Malformed | The specified SnatIp is not a valid IP address. | 该公网IP不合法。 |
400 | SNAT_IP_POOL_COUNT_TOO_MANY | The Snat pool ip too many. | SNAT IP池的IP达到配额。 |
400 | Forbidden.SnatEntryCountLimited | SNAT entry in the specified SNAT table reach it?s limit. | SNAT条目数量已达到配额。 |
400 | NOT_ALLOW_USE_SOURCECIDR | The User not in nat_scope_unlimited white list. Cannot use SourceCidr param. | 内网IP超出VPC网段范围。 |
400 | INVALID_PARAMETER | The parameter invalid. | 参数不合法。 |
400 | Forbidden.SourceVSwitchId.Duplicated | The specified SourceCIDRis duplicated. | 该交换机已配置了 SNAT 规则,请您不要重复设置。 |
400 | Forbidden.IpUsedInForwardTable | The specified SnatIp already used in forward table | 该公网IP已经被DNAT使用,请更换其他公网IP地址或将当前公网IP的DNAT规则删除。 |
400 | Forbindden | The specified Instance already bind eip | 该实例已经绑定了 EIP,请将 ECS 实例与 EIP 解绑后再添加该端口转发规则。 |
400 | OperationUnsupported.CidrConflict | The specified CIDR block conflicts with an existing SNAT entry. | 您指定的CIDR的网段与已有的SNAT条目冲突。 |
400 | InvalidParameter.Name.Malformed | The specified Name is not valid. | 该名称不合法,请您按照正确的格式书写名称。 |
404 | InvalidRegionId.NotFound | The specified RegionId does not exist in our records. | 指定的RegionId不存在。 |
404 | InvalidSnatTableId.NotFound | Specified SNAT table does not exist. | 指定的 SNAT 表不存在,请您检查输入参数是否正确。 |
404 | InvalidVSwitchId.NotFound | The specified virtual switch does not exists. | 该交换机不存在,请您检查输入的交换机是否正确。 |
404 | InvalidSnatIp.NotFound | Specified SnatIp does not found on the NAT Gateway | 该公网IP不在NAT网关中。 |
访问错误中心查看更多错误码。