更新时间:2024-03-14 GMT+08:00

创建终端节点服务

功能介绍

创建终端节点服务,允许其他用户创建终端节点连接您创建的终端节点服务,使用您所提供的服务。

该接口为异步接口,调用成功会返回200状态码,说明请求已正常下发。通常创建终端节点服务需要1~2分钟,可以通过查询终端节点服务详情查看创建结果。

URI

POST /v1/{project_id}/vpc-endpoint-services

参数说明如表1所示。
表1 参数说明

参数

是否必选

描述

project_id

项目ID,获取方法请参见获取项目ID

请求消息

  • 参数说明
    表2 请求参数

    名称

    是否必选

    参数类型

    描述

    port_id

    String

    标识终端节点服务后端资源的ID,格式为通用唯一识别码(Universally Unique Identifier,下文简称UUID)。

    取值为:

    • LB类型:负载均衡器内网IP对应的端口ID。详细内容请参考《弹性负载均衡接口参考》中的“查询负载均衡详情”,详见响应消息中的“port_id”字段。
    • VM类型:弹性云服务器IP地址对应的网卡ID。详细内容请参考《弹性云服务器接口参考》中的“查询云服务器网卡信息”,详见响应消息中的“port_id”字段。
    • VIP类型:虚拟资源所在物理服务器的虚拟IP对应的端口ID。(该字段即将废弃,请优先使用LB类型)
    说明:
    • 创建终端节点服务时,VPC的子网网段不能与198.19.128.0/17重叠。
    • VPC路由表中自定义路由的目的地址不能与198.19.128.0/17重叠。

    service_name

    String

    终端节点服务的名称,长度不大于16,允许传入大小写字母、数字、下划线、中划线。

    • 传入为空,存入值为regionName+.+serviceId
    • 传入不为空并校验通过,存入值为regionName+.+serviceName+.+serviceId

    vpc_id

    String

    终端节点服务对应后端资源所在的VPC的ID。

    详细内容请参考《虚拟私有云接口参考》中的“查询VPC”,详见响应消息中的“id”字段。

    approval_enabled

    Boolean

    是否需要审批。

    • false:不需要审批,创建的终端节点连接直接为accepted状态。
    • true:需要审批,创建的终端节点连接为pendingAcceptance状态,需要终端节点服务所属用户审核后方可使用。

    默认为true,需要审批。

    service_type

    String

    终端节点服务类型。仅支持将用户私有服务创建为interface类型的终端节点服务。

    终端节点服务类型包括“网关(gateway)型”和“接口(interface)型”:
    • gateway:由运维人员配置。用户无需创建,可直接使用。
    • interface:包括运维人员配置的云服务和用户自己创建的私有服务。其中,运维人员配置的云服务无需创建,用户可直接使用。

    您可以通过查询公共终端节点服务列表查看由运维人员配置的所有用户可见且可连接的终端节点服务,并通过创建终端节点创建访问Gateway和Interface类型终端节点服务的终端节点。

    server_type

    String

    资源类型。

    • LB:负载均衡,适用于高访问量业务和对可靠性和容灾性要求较高的业务。
    • VM:云服务器,适用于作为服务器使用。
    • VIP:虚拟IP。(该字段即将废弃,请优先使用LB类型)
    • BMS:裸金属服务器。(该字段即将废弃,请优先使用LB类型)

    ports

    Array of objects

    服务开放的端口映射列表,详细内容请参见表3

    同一个终端节点服务下,不允许重复的端口映射。若多个终端节点服务共用一个port_id,则终端节点服务之间的所有端口映射的server_port和protocol的组合不能重复,单次最多添加200个。

    tcp_proxy

    String

    用于控制是否将客户端的源IP、源端口、marker_id等信息携带到服务端。信息携带支持两种方式:

    • TCP TOA:表示将客户端信息插入到tcp option字段中携带至服务端。
      说明:

      仅当后端资源为OBS时,支持TCP TOA类型信息携带方式。

    • Proxy Protocol:表示将客户端相关信息插入到tcp payload字段中携带至服务端。

    仅当服务端支持解析上述字段时,该参数设置才有效。

    参数的取值包括:

    • close:表示关闭代理协议。
    • toa_open:表示开启代理协议“tcp_toa”。
    • proxy_open:表示开启代理协议“proxy_protocol”。
    • open:表示同时开启代理协议“tcp_toa”和“proxy_protocol”。
    • proxy_vni:表示关闭代理协议“tcp_toa”,同时开启proxy和virtual network ID。

    默认值为“close”。

    tags

    Array of objects

    资源标签列表,详细内容请参见表4

    同一个终端节点服务最多可添加10个标签。

    表3 Port要素说明

    属性

    是否必选

    参数类型

    描述

    client_port

    Integer

    终端节点访问的端口。

    终端节点提供给用户,作为访问终端节点服务的端口,范围1-65535。

    server_port

    Integer

    终端节点服务的端口。

    终端节点服务绑定了后端资源,作为提供服务的端口,范围1-65535。

    protocol

    String

    端口映射协议,支持TCP。

    默认为TCP。

    表4 Tags要素说明

    名称

    是否必选

    参数类型

    描述

    key

    String

    键。最大长度36个unicode字符。 key不能为空。不能包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”,且首尾字符不能为空格。

    value

    String

    值。每个值最大长度43个unicode字符,可以为空字符串。 不能包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”,且首尾字符不能为空格。

  • 请求样例
    POST https://{endpoint}/v1/{project_id}/vpc-endpoint-services
    {
       "port_id":"4189d3c2-8882-4871-a3c2-d380272eed88",
       "vpc_id":"4189d3c2-8882-4871-a3c2-d380272eed80",
       "approval_enabled":false,
       "service_type":"interface",
       "server_type":"VM",
       "ports":
      [
        {
          "client_port":8080,
          "server_port":90,
          "protocol":"TCP"
        },
        {
          "client_port":8081,
          "server_port":80,
          "protocol":"TCP"
        }
      ]
    }

响应消息

  • 参数说明
    表5 响应参数

    参数

    参数类型

    描述

    id

    String

    终端节点服务的ID,唯一标识。

    port_id

    String

    标识终端节点服务后端资源的ID,格式为通用唯一识别码(Universally Unique Identifier,下文简称UUID)。取值为:

    • LB类型:负载均衡器内网IP对应的端口ID。
    • VM类型:弹性云服务器IP地址对应的网卡ID。
    • VIP类型:虚拟资源所在物理服务器的虚拟IP对应的端口ID。(该字段即将废弃,请优先使用LB类型)

    service_name

    String

    终端节点服务的名称。

    service_type

    String

    终端节点服务类型。

    终端节点服务类型包括“网关(gateway)型”和“接口(interface)型”:
    • gateway:由运维人员配置。用户无需创建,可直接使用。
    • interface:包括运维人员配置的云服务和用户自己创建的私有服务。其中,运维人员配置的云服务无需创建,用户可直接使用。

    您可以通过创建终端节点创建访问Gateway和Interface类型终端节点服务的终端节点。

    server_type

    String

    资源类型。

    • LB:负载均衡。
    • VM:云服务器。
    • VIP:虚拟IP。(该字段已废弃,请优先使用LB类型)
    • BMS:裸金属服务器。(该字段已废弃,请优先使用LB类型)

    vpc_id

    String

    终端节点服务对应后端资源所在的VPC的ID。

    approval_enabled

    Boolean

    是否需要审批。

    • false:不需要审批,创建的终端节点连接直接为accepted状态。
    • true:需要审批,创建的终端节点连接为pendingAcceptance状态,需要终端节点服务所属用户审核后方可使用。

    status

    String

    终端节点服务的状态。

    • creating:创建中。
    • available:可连接
    • failed:失败

    created_at

    String

    终端节点服务的创建时间。

    采用UTC时间格式,格式为:YYYY-MM-DDTHH:MM:SSZ

    updated_at

    String

    终端节点服务的更新时间。

    采用UTC时间格式,格式为:YYYY-MM-DDTHH:MM:SSZ

    project_id

    String

    项目ID,获取方法请参见获取项目ID

    ports

    Array of objects

    服务开放的端口映射列表,详细内容请参见表6

    同一个终端节点服务下,不允许重复的端口映射。若多个终端节点服务共用一个port_id,则终端节点服务之间的所有端口映射的server_port和protocol的组合不能重复。

    tcp_proxy

    String

    用于控制是否将客户端的源IP、源端口、marker_id等信息携带到服务端。信息携带支持两种方式:

    • TCP TOA:表示将客户端信息插入到tcp option字段中携带至服务端。
      说明:

      仅当后端资源为OBS时,支持TCP TOA类型信息携带方式。

    • Proxy Protocol:表示将客户端相关信息插入到tcp payload字段中携带至服务端。

    仅当服务端支持解析上述字段时,该参数设置才有效。

    参数的取值包括:

    • close:表示关闭代理协议。
    • toa_open:表示开启代理协议“tcp_toa”。
    • proxy_open:表示开启代理协议“proxy_protocol”。
    • open:表示同时开启代理协议“tcp_toa”和“proxy_protocol”。
    • proxy_vni:表示关闭代理协议“tcp_toa”,同时开启proxy和virtual network ID。

    默认值为“close”。

    tags

    Array of objects

    资源标签列表,详细内容请参见表7

    表6 Port要素说明

    属性

    参数类型

    描述

    client_port

    Integer

    终端节点访问的端口。

    终端节点提供给用户,作为访问终端节点服务的端口,范围1-65535。

    server_port

    Integer

    终端节点服务的端口。

    终端节点服务绑定了后端资源,作为提供服务的端口,范围1-65535。

    protocol

    String

    端口映射协议,支持TCP。

    默认为TCP。

    表7 Tags要素说明

    名称

    参数类型

    说明

    key

    String

    键。最大长度36个unicode字符。 key不能为空。不能包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”,且首尾字符不能为空格。

    value

    String

    值。每个值最大长度43个unicode字符,可以为空字符串。 不能包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”,且首尾字符不能为空格。

  • 响应样例
    {
        "id":"4189d3c2-8882-4871-a3c2-d380272eed83",
        "port_id":"4189d3c2-8882-4871-a3c2-d380272eed88",
        "vpc_id":"4189d3c2-8882-4871-a3c2-d380272eed80",
        "status":"available",
        "approval_enabled":false,
        "service_name":"test123",
        "service_type":"interface",
        "server_type":"VM",
        "project_id":"6e9dfd51d1124e8d8498dce894923a0d",
        "created_at":"2018-01-30T07:42:01Z",
        "ports":
                  [
                    {
                        "client_port":8080,
                        "server_port":90,
                        "protocol":"TCP"
                    },
                    {
                        "client_port":8081,
                        "server_port":80,
                        "protocol":"TCP"
                    }
                  ]
    }

状态码

状态码请参见状态码