
# 绑定/解绑NAT网关 - BindingorUnbindingaNATGateway
#### 功能介绍
实例下的节点绑定/解绑NAT网关。
- 调用接口前，您需要了解API [认证鉴权](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_011.html)。
- 调用接口前，您需要提前获取到[地区和终端节点](https://developer.huaweicloud.com/endpoint)。
 
#### 接口约束
- 为确保数据库可正常访问，请确认数据库所使用的安全组开通了数据库端口的访问权限，假设数据库端口是8000，那么需要确保安全组的入方向规则已放开访问者网络的IP和8000端口。数据库端口可在实例基本信息页面的网络信息模块获取。
- 需要提前创建公网NAT网关，并确保该NAT网关的虚拟私有云和子网与GaussDB实例的虚拟私有云和子网保持一致。如何创建公网NAT网关请参见[购买公网NAT网关](https://support.huaweicloud.com/usermanual-natgateway/zh-cn_topic_0150270259.html)。
- 使用NAT网关通过JDBC连接分布式实例时，不支持使用"autoBalance"参数。
- GaussDB实例绑定NAT网关后，不得在NAT网关的DNAT规则页面删除对应规则，若删除后GaussDB页面不会同步删除且会导致弹性公网IP无法连接数据库实例。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/sdk?product=GaussDBforopenGauss&api=BindDNat)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_189.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                      | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  |:---|:---|:---|:---|:---|:---|
  | gaussdb:instance:bindEIP | write | instance    | -   | - gaussdb:instance:bindPublicIp  - gaussdb:instance:modify   | nat:dnatRules:create nat:dnatRules:delete nat:natGateways:create nat:natGateways:listTags eip:publicIps:associateInstance eip:publicIps:disassociateInstance |
     
  
 
#### URI
PUT /v3/{project_id}/instances/{instance_id}/dnat
表1参数说明 
| 名称          | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释：** 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_196.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值**： 不涉及。 |
| instance_id | 是    | String | **参数解释：** 实例ID，此参数是用户创建实例的唯一标识。请参考[查询数据库实例列表 - QueryingDBInstances](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_328.html)接口获取实例ID。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值** **：** 不涉及。                                                                                                                      |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取。 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值** **：** 不涉及。 |
| X-Language   | 否    | String | **参数解释：** 指定接口返回信息的语言类型。 **约束限制：** 不涉及。 **取值范围：** - **zh-cn**：中文  - **en-us**：英文   **默认取值** **：** **en-us**                     |
   
表3参数说明 
| 参数                    | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| action                | 是    | String  | **参数解释** **：** 操作标识。 **约束限制** **：** 不涉及。 **取值范围** **：** - BIND，表示绑定NAT网关。  - UNBIND，表示解绑NAT网关。   **默认取值** **：** 不涉及。                                                                                                                                                                                                                      |
| node_id               | 是    | String  | **参数解释：** 需要绑定或者解绑的节点ID。请参考[查询数据库实例列表 - QueryingDBInstances](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_328.html)接口在"实例节点信息列表"字段中获取。 **约束限制：** 分布式仅支持CN节点，集中式不支持日志节点。 **取值范围：** 不涉及。 **默认取值** **：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| public_ip_id          | 否    | String  | **参数解释** **：** 弹性公网IP的ID。 获取方法请参考 [查询弹性公网IP列表](https://support.huaweicloud.com/api-eip/ListPublicipsV3.html) 接口。 **约束限制** **：** - action类型为BIND时必选。  - 一个弹性公网IP只能绑定到一个NAT网关。   **取值范围** **：** UUID格式。 **默认取值** **：** 不涉及。                                   |
| nat_gateway_id        | 否    | String  | **参数解释** **：** 公网NAT网关的ID。 获取方法请参考 [查询公网NAT网关列表](https://support.huaweicloud.com/api-natgateway/ListNatGateways.html) 接口。 **约束限制** **：** - action类型为BIND时必选。  - NAT网关的虚拟私有云和子网需要和GaussDB数据库实例的虚拟私有云和子网保持一致。   **取值范围** **：** UUID格式。 **默认取值** **：** 不涉及。 |
| external_service_port | 否    | Integer | **参数解释** **：** 对外提供服务的端口号，可通过弹性公网IP加该端口号的方式连接数据库实例。 **约束限制** **：** action类型为BIND时必选。 **取值范围** **：** 0\~65535。 **默认取值** **：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
#### 响应参数
无。
#### 请求示例
- 绑定NAT网关。
  ```
  PUT https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/dd93e98e103b4fc4b5a978a6bd6f03a9in14/dnat
  {
      "node_id":"890599148fc64bda8dd10b9ba72a0192no14",
      "public_ip_id":"0d8c2bd4-745a-4381-ad5e-7dc51142918b",
      "nat_gateway_id":"2219bb95-cb16-4296-91f8-96c00ffab5c9",
      "external_service_port":3000,
      "action":"BIND"
  }
  ```
  
 
- 解绑NAT网关。
  ```
  PUT https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/dd93e98e103b4fc4b5a978a6bd6f03a9in14/dnat
  {
      "node_id":"ff4d04e9a27b41c89faec0eceee8ff5fno14",
      "action":"UNBIND"
  }
  ```
  
#### 响应示例
绑定/解绑NAT网关成功。
```
{}
```
#### 状态码
- 正常 200
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_194.html)。
  
 
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_195.html)。
