
# 添加或更新后端实例 - AddingBackendInstancesV2
#### 功能介绍
为指定的VPC通道添加后端实例
如果指定地址的后端实例已存在，则更新对应后端实例信息。如果请求体中包含多个重复地址的后端实例定义，则使用第一个定义。
引用负载通道类型的负载通道不支持添加或更新后端实例。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-apig/apig-api-180713003.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-apig/apig-api-grant-policy_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                                | 访问级别  | 资源类型（\*为必须） | 条件键                       | 别名                           | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                  |
  |:---|:---|:---|:---|:---|:---|
  | apig:loadBalanceChannel:createBackendServerAddress | Write | instance \* | g:ResourceTag/\<tag-key\> | apig:vpcChannels:addInstance | - apig:instance:get  - apig:loadBalanceChannel:get  - ecs:cloudServers:showServer   |
     
  
 
#### URI
POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels/{vpc_channel_id}/members
表1路径参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                      |
|:---|:---|:---|:---|
| project_id     | 是    | String | 项目ID，获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-apig/apig-api-180713009.html)。 |
| instance_id    | 是    | String | 实例ID，在API网关控制台的"实例信息"中获取。                                                               |
| vpc_channel_id | 是    | String | VPC通道的编号                                                                                |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数      | 是否必选 | 参数类型                                                                         | 描述     |
|:---|:---|:---|:---|
| members | 是    | Array of [MemberInfo] objects | 后端实例列表 |
   
 表4MemberInfo 
| 参数                | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| host              | 否    | String  | 后端服务器地址 后端实例类型为ip时必填 最大长度：**255**                                                                                                                                                                                                                                                                                                       |
| weight            | 否    | Integer | 权重值。 允许您对后端服务进行评级，权重值越大，转发到该云服务的请求数量越多。 最小值：**0** 最大值：**10000**                                                                                                                                                                                                                             |
| is_backup         | 否    | Boolean | 是否备用节点。 开启后对应后端服务为备用节点，仅当非备用节点全部故障时工作。 实例需要升级到对应版本才支持此功能，如果不支持请联系技术支持。 缺省值：**false**                                                                                                                                                                                                        |
| member_group_name | 否    | String  | 后端服务器组名称。为后端服务地址选择服务器组，便于统一修改对应服务器组的后端地址。                                                                                                                                                                                                                                                                                                                                                                                       |
| status            | 否    | Integer | 后端服务器状态 - 1：可用   - 2：不可用    |
| port              | 否    | Integer | 后端服务器端口 最小值：**0** 最大值：**65535**                                                                                                                                                                                                                                                                                                         |
| ecs_id            | 否    | String  | 后端云服务器的编号。 后端实例类型为ecs时必填，支持英文，数字，"-","_"，1 \~ 64字符。 最大长度：**255**                                                                                                                                                                                                                                                                        |
| ecs_name          | 否    | String  | 后端云服务器的名称。 后端实例类型为ecs时必填，支持汉字，英文，数字，"-","_","."，1 \~ 64字符。 最大长度：**64**                                                                                                                                                                                                                                                                  |
   
#### 响应参数
**状态码：201**
表5响应Body参数 
| 参数      | 参数类型                                                                                | 描述           |
|:---|:---|:---|
| size    | Integer                                                                             | 本次返回的列表长度    |
| total   | Long                                                                                | 满足条件的记录数     |
| members | Array of [VpcMemberInfo] objects | 本次查询到的云服务器列表 |
   
 表6VpcMemberInfo 
| 参数                | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| host              | String  | 后端服务器地址 后端实例类型为ip时必填 最大长度：**255**                                                                                                                                                                                                                                                                                                       |
| weight            | Integer | 权重值。 允许您对后端服务进行评级，权重值越大，转发到该云服务的请求数量越多。 最小值：**0** 最大值：**10000**                                                                                                                                                                                                                             |
| is_backup         | Boolean | 是否备用节点。 开启后对应后端服务为备用节点，仅当非备用节点全部故障时工作。 实例需要升级到对应版本才支持此功能，如果不支持请联系技术支持。 缺省值：**false**                                                                                                                                                                                                        |
| member_group_name | String  | 后端服务器组名称。为后端服务地址选择服务器组，便于统一修改对应服务器组的后端地址。                                                                                                                                                                                                                                                                                                                                                                                       |
| status            | Integer | 后端服务器状态 - 1：可用   - 2：不可用    |
| port              | Integer | 后端服务器端口 最小值：**0** 最大值：**65535**                                                                                                                                                                                                                                                                                                         |
| ecs_id            | String  | 后端云服务器的编号。 后端实例类型为ecs时必填，支持英文，数字，"-","_"，1 \~ 64字符。 最大长度：**255**                                                                                                                                                                                                                                                                        |
| ecs_name          | String  | 后端云服务器的名称。 后端实例类型为ecs时必填，支持汉字，英文，数字，"-","_","."，1 \~ 64字符。 最大长度：**64**                                                                                                                                                                                                                                                                  |
| id                | String  | 后端实例对象的编号                                                                                                                                                                                                                                                                                                                                                                                                                       |
| vpc_channel_id    | String  | VPC通道的编号                                                                                                                                                                                                                                                                                                                                                                                                                        |
| create_time       | String  | 后端实例增加到VPC通道的时间                                                                                                                                                                                                                                                                                                                                                                                                                 |
| member_group_id   | String  | 后端服务器组编号                                                                                                                                                                                                                                                                                                                                                                                                                        |
| health_status     | String  | 负载通道后端实例健康状态，unknown、healthy、unhealthy分别标识未做健康检查、健康、不健康。                                                                                                                                                                                                                                                                                                                                                                        |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：401**
表8响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：403**
表9响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：404**
表10响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：500**
表11响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
#### 请求示例
- VPC通道添加后端服务器地址
  ```
  {
    "members" : [ {
      "host" : "192.168.2.25",
      "weight" : 1,
      "member_group_name" : "test"
    } ]
  }
  ```
  
- VPC通道添加云服务器
  ```
  {
    "members" : [ {
      "ecs_id" : "1082720c-3c15-409c-9ae3-4983ddfb6a9d",
      "ecs_name" : "APIGtest02",
      "weight" : 2
    } ]
  }
  ```
  
 
#### 响应示例
**状态码：201**
Created
- 示例 1
  ```
  {
    "total" : 1,
    "size" : 1,
    "members" : [ {
      "host" : "192.168.2.25",
      "weight" : 1,
      "is_backup" : false,
      "member_group_name" : "test",
      "status" : 1,
      "port" : 22,
      "ecs_id" : "3082720c-3c15-409c-9ae3-4983ddfb6a9d",
      "ecs_name" : "APIGtest",
      "id" : "683b6807cad54122a6777ad047a6178e",
      "vpc_channel_id" : "105c6902457144a4820dff8b1ad63331",
      "create_time" : "2020-07-23T09:13:24Z",
      "member_group_id" : "cf868f0224084710a1e188b7d3057c52"
    } ]
  }
  ```
  
- 示例 2
  ```
  {
    "total" : 2,
    "size" : 2,
    "members" : [ {
      "host" : "192.168.0.17",
      "weight" : 2,
      "is_backup" : false,
      "member_group_name" : "test02",
      "status" : 1,
      "port" : 22,
      "ecs_id" : "1082720c-3c15-409c-9ae3-4983ddfb6a9d",
      "ecs_name" : "APIGtest02",
      "id" : "5c868f0224084710a1e188b7d3057c52",
      "vpc_channel_id" : "105c6902457144a4820dff8b1ad63331",
      "create_time" : "2020-07-23T09:03:53Z",
      "member_group_id" : "df868f0224084710a1e188b7d3057c52",
      "health_status" : "unhealthy"
    }, {
      "host" : "192.168.0.39",
      "weight" : 1,
      "is_backup" : false,
      "member_group_name" : "test01",
      "status" : 1,
      "port" : 22,
      "ecs_id" : "ebe1104f-1254-4ac6-8ed7-366bec84f36e",
      "ecs_name" : "APIGtest01",
      "id" : "33ac0e39d005492eb1f4683e66d1a0d1",
      "vpc_channel_id" : "105c6902457144a4820dff8b1ad63331",
      "create_time" : "2020-07-23T07:24:34Z",
      "member_group_id" : "ef868f0224084710a1e188b7d3057c42",
      "health_status" : "unhealthy"
    } ]
  }
  ```
  
**状态码：400**
Bad Request
```
{
  "error_code" : "APIG.2004",
  "error_msg" : "The parameter value is outside the allowable range,parameterName:weight. Please refer to the support documentation"
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}
```
**状态码：403**
Forbidden
```
{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}
```
**状态码：404**
Not Found
```
{
  "error_code" : "APIG.3023",
  "error_msg" : "The VPC channel does not exist,id:56a7d7358e1b42459c9d730d65b14e59"
}
```
**状态码：500**
Internal Server Error
```
{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 201 | Created               |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-apig/ErrorCode.html)。
