创建VPC通道
功能介绍
在API网关中创建连接私有VPC资源的通道,并在创建API时将后端节点配置为使用这些VPC通道,以便API网关直接访问私有VPC资源。
每个用户最多创建30个VPC通道。
调用方法
请参见如何调用API。
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/vpc-channels
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方式请参见获取项目ID。 |
instance_id |
是 |
String |
实例ID,在API网关控制台的“实例信息”中获取。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
VPC通道的名称。 长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、中划线、下划线、点组成,且只能以英文或中文开头。
说明:
中文字符必须为UTF-8或者unicode编码。 |
port |
是 |
Integer |
VPC通道中主机的端口号。 取值范围1 ~ 65535。 |
balance_strategy |
是 |
Integer |
分发算法。
缺省值:1 枚举值:
|
member_type |
是 |
String |
VPC通道的成员类型。
缺省值:ecs 枚举值:
|
type |
否 |
Integer |
vpc通道类型,默认为服务器类型。
缺省值:2 枚举值:
|
dict_code |
否 |
String |
VPC通道的字典编码 支持英文,数字,特殊字符(-_.) 暂不支持 最小长度:3 最大长度:64 |
member_groups |
否 |
Array of MemberGroupCreate objects |
VPC通道后端服务器组列表 |
members |
否 |
Array of MemberInfo objects |
VPC后端实例列表。 |
vpc_health_config |
否 |
VpcHealthConfig object |
健康检查详情。 |
microservice_info |
否 |
MicroServiceCreate object |
微服务详情。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
member_group_name |
是 |
String |
VPC通道后端服务器组名称。支持汉字、英文、数字、下划线、中划线、点,且只能以英文和汉字开头,3-64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 |
member_group_remark |
否 |
String |
VPC通道后端服务器组描述。 最大长度:255 |
member_group_weight |
否 |
Integer |
VPC通道后端服务器组权重值。 当前服务器组存在服务器且此权重值存在时,自动使用此权重值分配权重。 最小值:0 最大值:100 |
dict_code |
否 |
String |
VPC通道后端服务器组的字典编码 支持英文,数字,特殊字符(-_.) 暂不支持 最小长度:3 最大长度:64 |
microservice_version |
否 |
String |
VPC通道后端服务器组的版本,仅VPC通道类型为微服务时支持。 最大长度:64 |
microservice_port |
否 |
Integer |
VPC通道后端服务器组的端口号,仅VPC通道类型为微服务时支持。端口号为0时后端服务器组下的所有地址沿用原来负载端口继承逻辑。 最小值:0 最大值:65535 |
microservice_labels |
否 |
Array of MicroserviceLabel objects |
VPC通道后端服务器组的标签,仅VPC通道类型为微服务时支持。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
label_name |
是 |
String |
标签名称。 以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。 最小长度:1 最大长度:63 |
label_value |
是 |
String |
标签值。 以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。 最小长度:1 最大长度:63 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
host |
否 |
String |
后端服务器地址 后端实例类型为ip时必填 最大长度:64 |
weight |
否 |
Integer |
权重值。 允许您对后端服务进行评级,权重值越大,转发到该云服务的请求数量越多。 最小值:0 最大值:10000 |
is_backup |
否 |
Boolean |
是否备用节点。 开启后对应后端服务为备用节点,仅当非备用节点全部故障时工作。 实例需要升级到对应版本才支持此功能,若不支持请联系技术支持。 缺省值:false |
member_group_name |
否 |
String |
后端服务器组名称。为后端服务地址选择服务器组,便于统一修改对应服务器组的后端地址。 |
status |
否 |
Integer |
后端服务器状态
枚举值:
|
port |
否 |
Integer |
后端服务器端口 最小值:0 最大值:65535 |
ecs_id |
否 |
String |
后端云服务器的编号。 后端实例类型为ecs时必填,支持英文,数字,“-”,“_”,1 ~ 64字符。 最大长度:255 |
ecs_name |
否 |
String |
后端云服务器的名称。 后端实例类型为ecs时必填,支持汉字,英文,数字,“-”,“_”,“.”,1 ~ 64字符。 最大长度:64 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
protocol |
是 |
String |
使用以下协议,对VPC中主机执行健康检查:
枚举值:
|
path |
否 |
String |
健康检查时的目标路径。protocol = http或https时必选 |
method |
否 |
String |
健康检查时的请求方法 缺省值:GET 枚举值:
|
port |
否 |
Integer |
健康检查的目标端口,缺少或port = 0时为VPC中主机的端口号。 若此端口存在非0值,则使用此端口进行健康检查。 最小值:0 最大值:65535 |
threshold_normal |
是 |
Integer |
正常阈值。判定VPC通道中主机正常的依据为:连续检查x成功,x为您设置的正常阈值。 最小值:1 最大值:10 |
threshold_abnormal |
是 |
Integer |
异常阈值。判定VPC通道中主机异常的依据为:连续检查x失败,x为您设置的异常阈值。 最小值:1 最大值:10 |
time_interval |
是 |
Integer |
间隔时间:连续两次检查的间隔时间,单位为秒。必须大于timeout字段取值。 最小值:1 最大值:300 |
http_code |
否 |
String |
检查目标HTTP响应时,判断成功使用的HTTP响应码。取值范围为100到599之前的任意整数值,支持如下三种格式:
|
enable_client_ssl |
否 |
Boolean |
是否开启双向认证。若开启,则使用实例配置中的backend_client_certificate配置项的证书 缺省值:false |
status |
否 |
Integer |
健康检查状态
枚举值:
|
timeout |
是 |
Integer |
超时时间:检查期间,无响应的时间,单位为秒。必须小于time_interval字段取值。 最小值:1 最大值:30 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
service_type |
否 |
String |
微服务类型:
枚举值:
|
cse_info |
否 |
MicroServiceInfoCSEBase object |
CSE微服务详细信息,service_type为CSE时必填 |
cce_info |
否 |
MicroServiceInfoCCEBase object |
CCE云容器引擎工作负载信息,service_type为CCE时必填。app_name或(label_key、label_value)至少填一个,只填app_name时,相当于(label_key=‘app’、label_value=app_name值) |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
engine_id |
是 |
String |
微服务引擎编号 最大长度:64 |
service_id |
是 |
String |
微服务编号 最大长度:64 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
cluster_id |
是 |
String |
云容器引擎集群编号 最大长度:64 |
namespace |
是 |
String |
命名空间 最大长度:64 |
workload_type |
是 |
String |
工作负载类型
枚举值:
|
app_name |
否 |
String |
APP名称。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 |
label_key |
否 |
String |
服务标识名。支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号,且只能以英文、汉字和数字开头,1-64个字符。
说明:
中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 |
label_value |
否 |
String |
服务标识值。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
VPC通道的名称。 长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、中划线、下划线、点组成,且只能以英文或中文开头。
说明:
中文字符必须为UTF-8或者unicode编码。 |
port |
Integer |
VPC通道中主机的端口号。 取值范围1 ~ 65535。 |
balance_strategy |
Integer |
分发算法。
缺省值:1 枚举值:
|
member_type |
String |
VPC通道的成员类型。
缺省值:ecs 枚举值:
|
type |
Integer |
vpc通道类型,默认为服务器类型。
缺省值:2 枚举值:
|
dict_code |
String |
VPC通道的字典编码 支持英文,数字,特殊字符(-_.) 暂不支持 最小长度:3 最大长度:64 |
create_time |
String |
VPC通道的创建时间 |
id |
String |
VPC通道的编号 |
status |
Integer |
VPC通道的状态。
枚举值:
|
member_groups |
Array of MemberGroupInfo objects |
后端云服务器组列表。 |
microservice_info |
MicroServiceInfo object |
微服务的响应对象 |
参数 |
参数类型 |
描述 |
---|---|---|
member_group_name |
String |
VPC通道后端服务器组名称。支持汉字、英文、数字、下划线、中划线、点,且只能以英文和汉字开头,3-64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 |
member_group_remark |
String |
VPC通道后端服务器组描述。 最大长度:255 |
member_group_weight |
Integer |
VPC通道后端服务器组权重值。 当前服务器组存在服务器且此权重值存在时,自动使用此权重值分配权重。 最小值:0 最大值:100 |
dict_code |
String |
VPC通道后端服务器组的字典编码 支持英文,数字,特殊字符(-_.) 暂不支持 最小长度:3 最大长度:64 |
microservice_version |
String |
VPC通道后端服务器组的版本,仅VPC通道类型为微服务时支持。 最大长度:64 |
microservice_port |
Integer |
VPC通道后端服务器组的端口号,仅VPC通道类型为微服务时支持。端口号为0时后端服务器组下的所有地址沿用原来负载端口继承逻辑。 最小值:0 最大值:65535 |
microservice_labels |
Array of MicroserviceLabel objects |
VPC通道后端服务器组的标签,仅VPC通道类型为微服务时支持。 |
member_group_id |
String |
VPC通道后端服务器组编号 |
create_time |
String |
VPC通道后端服务器组创建时间 |
update_time |
String |
VPC通道后端服务器组更新时间 |
参数 |
参数类型 |
描述 |
---|---|---|
label_name |
String |
标签名称。 以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。 最小长度:1 最大长度:63 |
label_value |
String |
标签值。 以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。 最小长度:1 最大长度:63 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
微服务编号 |
instance_id |
String |
实例编号 |
service_type |
String |
微服务类型:
枚举值:
|
cse_info |
MicroServiceInfoCSE object |
CSE微服务详细信息 |
cce_info |
MicroServiceInfoCCE object |
CCE微服务工作负载信息 |
update_time |
String |
微服务更新时间 |
create_time |
String |
微服务创建时间 |
参数 |
参数类型 |
描述 |
---|---|---|
engine_id |
String |
微服务引擎编号 最大长度:64 |
service_id |
String |
微服务编号 最大长度:64 |
engine_name |
String |
微服务引擎名称 |
service_name |
String |
微服务名称 |
register_address |
String |
注册中心地址 |
cse_app_id |
String |
微服务所属的应用 |
version |
String |
微服务的版本,已废弃,通过后端服务器组中的版本承载。 最大长度:64 |
参数 |
参数类型 |
描述 |
---|---|---|
cluster_id |
String |
云容器引擎集群编号 最大长度:64 |
namespace |
String |
命名空间 最大长度:64 |
workload_type |
String |
工作负载类型
枚举值:
|
app_name |
String |
APP名称。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 |
label_key |
String |
服务标识名。支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号,且只能以英文、汉字和数字开头,1-64个字符。
说明:
中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 |
label_value |
String |
服务标识值。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 最小长度:1 最大长度:64 |
cluster_name |
String |
云容器引擎集群名称 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 404
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
请求示例
- 创建服务器类型的VPC通道
{ "balance_strategy" : 1, "member_type" : "ip", "name" : "VPC_demo", "port" : 22, "type" : 2, "vpc_health_config" : { "http_code" : "200", "path" : "/vpc/demo", "port" : 22, "protocol" : "http", "threshold_abnormal" : 5, "threshold_normal" : 2, "time_interval" : 10, "timeout" : 5, "enable_client_ssl" : false }, "member_groups" : [ { "member_group_name" : "test", "member_group_weight" : 1, "member_group_remark" : "remark" }, { "member_group_name" : "default", "member_group_weight" : 2, "member_group_remark" : "remark" } ], "members" : [ { "host" : "192.168.0.5", "weight" : 1, "member_group_name" : "test" }, { "host" : "192.168.1.124", "weight" : 2, "member_group_name" : "default" } ] }
- 创建微服务类型的VPC通道
{ "balance_strategy" : 1, "member_type" : "ip", "name" : "VPC_demo", "port" : 22, "type" : 3, "vpc_health_config" : { "http_code" : "200", "path" : "/vpc/demo", "port" : 22, "protocol" : "http", "threshold_abnormal" : 5, "threshold_normal" : 2, "time_interval" : 10, "timeout" : 5, "enable_client_ssl" : false }, "member_groups" : [ { "member_group_name" : "test", "member_group_weight" : 1, "member_group_remark" : "remark", "microservice_version" : "v1", "microservice_port" : 80 }, { "member_group_name" : "default", "member_group_weight" : 2, "member_group_remark" : "remark", "microservice_version" : "v2", "microservice_port" : 80, "microservice_labels" : [ { "label_name" : "cluster_id", "label_value" : "c429700c-5dc4-482a-9c0e-99f6c0635113" } ] } ], "members" : [ { "host" : "192.168.0.5", "weight" : 1, "member_group_name" : "test" }, { "host" : "192.168.1.124", "weight" : 2, "member_group_name" : "default" } ], "microservice_info" : { "service_type" : "CCE", "cce_info" : { "cluster_id" : "ab1485b4f91b45abbcd560be591f7309", "namespace" : "default", "workload_type" : "deployment", "app_name" : "testapp" } } }
响应示例
状态码: 201
Created
- 示例 1
{ "name" : "VPC_demo", "id" : "105c6902457144a4820dff8b1ad63331", "balance_strategy" : 1, "dict_code" : "", "create_time" : "2020-07-23T07:11:57.244829604Z", "member_type" : "ip", "port" : 22, "status" : 1, "member_groups" : [ { "member_group_id" : "c1ce135c705c4066853a0460b318fe16", "member_group_name" : "test", "member_group_weight" : 1, "member_group_remark" : "remark", "create_time" : "2020-07-23T07:11:57.244829604Z", "update_time" : "2020-07-23T07:11:57.244829604Z", "microservice_version" : "", "microservice_port" : 0 }, { "member_group_id" : "c1ce135c705c4066853a0460b318fe17", "member_group_name" : "default", "member_group_weight" : 2, "member_group_remark" : "remark", "create_time" : "2020-07-23T07:11:57.244829604Z", "update_time" : "2020-07-23T07:11:57.244829604Z", "microservice_version" : "", "microservice_port" : 0 } ], "type" : 2, "microservice_info" : { "id" : "", "instance_id" : "", "service_type" : "", "cse_info" : { "cse_app_id" : "", "engine_id" : "", "engine_name" : "", "register_address" : "", "service_id" : "", "service_name" : "" }, "cce_info" : { "cluster_id" : "", "cluster_name" : "", "namespace" : "", "workload_type" : "", "app_name" : "" }, "create_time" : "", "update_time" : "" } }
- 示例 2
{ "name" : "VPC_demo", "id" : "105c6902457144a4820dff8b1ad63331", "balance_strategy" : 1, "dict_code" : "", "create_time" : "2020-07-23T07:11:57.244829604Z", "member_type" : "ip", "port" : 22, "status" : 1, "member_groups" : [ { "member_group_id" : "c1ce135c705c4066853a0460b318fe16", "member_group_name" : "test", "member_group_weight" : 1, "member_group_remark" : "remark", "create_time" : "2020-07-23T07:11:57.244829604Z", "update_time" : "2020-07-23T07:11:57.244829604Z", "microservice_version" : "v1", "microservice_port" : 80 }, { "member_group_id" : "c1ce135c705c4066853a0460b318fe17", "member_group_name" : "default", "member_group_weight" : 2, "member_group_remark" : "remark", "create_time" : "2020-07-23T07:11:57.244829604Z", "update_time" : "2020-07-23T07:11:57.244829604Z", "microservice_version" : "v2", "microservice_port" : 80, "microservice_labels" : [ { "label_name" : "cluster_id", "label_value" : "c429700c-5dc4-482a-9c0e-99f6c0635113" } ] } ], "type" : 3, "microservice_info" : { "id" : "9483afa235be45158a70c19ab817ac65", "instance_id" : "eddc4d25480b4cd6b512f270a1b8b341", "service_type" : "CCE", "cse_info" : { "cse_app_id" : "", "engine_id" : "", "engine_name" : "", "register_address" : "", "service_id" : "", "service_name" : "" }, "cce_info" : { "cluster_id" : "ab1485b4f91b45abbcd560be591f7309", "cluster_name" : "cce-test", "namespace" : "default", "workload_type" : "deployment", "app_name" : "testapp" }, "create_time" : "2020-07-23T07:11:57.244829604Z", "update_time" : "2020-07-23T07:11:57.244829604Z" } }
状态码: 400
Bad Request
{ "error_code" : "APIG.2001", "error_msg" : "The request parameters must be specified, parameter name:members" }
状态码: 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.3030", "error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341" }
状态码: 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 |
错误码
请参见错误码。