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

导入微服务

功能介绍

导入微服务。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/microservice/import

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

instance_id

String

实例ID,在API网关控制台的“实例信息”中获取。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

group_info

MicroserviceGroup object

导入微服务的API分组信息

service_type

String

微服务中心类型。

  • CSE:CSE微服务注册中心
  • CCE: CCE云容器引擎(工作负载)
  • CCE_SERVICE: CCE云容器引擎(Service)

枚举值:

  • CSE
  • CCE
  • CCE_SERVICE

protocol

String

API网关访问微服务的请求协议

  • HTTP
  • HTTPS

缺省值:HTTPS

枚举值:

  • HTTP
  • HTTPS

apis

Array of MicroserviceApiCreate objects

导入的api列表

数组长度:1 - 50

backend_timeout

Integer

APIG请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000,默认5000

单位:毫秒。

最小值:1

缺省值:5000

auth_type

String

API的认证方式,默认无认证

  • NONE:无认证
  • APP:APP认证
  • IAM:IAM认证

缺省值:NONE

枚举值:

  • NONE
  • APP
  • IAM

cors

Boolean

是否支持跨域,默认不支持

  • true:支持
  • false:不支持

缺省值:false

枚举值:

  • true
  • false

cse_info

MicroServiceInfoCSECreate object

CSE微服务详细信息,service_type为CSE时必填

cce_info

MicroServiceInfoCCECreate object

CCE云容器引擎工作负载信息,service_type为CCE时必填

cce_service_info

MicroServiceInfoCCEServiceCreate object

CCE云容器引擎Service信息,service_type为CCE_SERVICE时必填

表4 MicroserviceGroup

参数

是否必选

参数类型

描述

group_id

String

指定已有的分组,为空时创建新的分组

最小长度:0

最大长度:64

group_name

String

API分组的名称,group_id为空时必填。

支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头,3-255个字符。

说明:

中文字符必须为UTF-8或者unicode编码。

最小长度:3

最大长度:255

app_id

String

group_id为空时必填,指定新分组所属的集成应用

最小长度:0

最大长度:64

表5 MicroserviceApiCreate

参数

是否必选

参数类型

描述

name

String

API名称。

支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头。

说明:

中文字符必须为UTF-8或者unicode编码。

最小长度:3

最大长度:255

req_method

String

API的请求方式

缺省值:ANY

枚举值:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • PATCH
  • OPTIONS
  • ANY

req_uri

String

请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。

/apic/health_check为APIG预置的健康检查路径,当req_method=GET时不支持req_uri=/apic/health_check。

说明:

需要服从URI规范。

最小长度:1

最大长度:512

match_mode

String

API的匹配方式

  • SWA:前缀匹配
  • NORMAL:正常匹配(绝对匹配) 默认:NORMAL

缺省值:SWA

枚举值:

  • SWA
  • NORMAL
表6 MicroServiceInfoCSECreate

参数

是否必选

参数类型

描述

engine_id

String

微服务引擎编号

最大长度:64

service_id

String

微服务编号

最大长度:64

version

String

微服务版本

最大长度:64

表7 MicroServiceInfoCCECreate

参数

是否必选

参数类型

描述

cluster_id

String

云容器引擎集群编号

最大长度:64

namespace

String

命名空间

最大长度:64

workload_type

String

工作负载类型

  • deployment:无状态负载
  • statefulset:有状态负载
  • daemonset:守护进程集

枚举值:

  • deployment
  • statefulset
  • daemonset

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

version

String

工作负载的版本

最大长度:64

port

Integer

工作负载的监听端口号

最小值:1

最大值:65535

labels

Array of MicroserviceLabel objects

工作负载的标签列表。

表8 MicroserviceLabel

参数

是否必选

参数类型

描述

label_name

String

标签名称。

以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。

最小长度:1

最大长度:63

label_value

String

标签值。

以字母或者数字开头和结尾,由字母、数字、连接符('-')、下划线('_')、点号('.')组成且63个字符之内。

最小长度:1

最大长度:63

表9 MicroServiceInfoCCEServiceCreate

参数

是否必选

参数类型

描述

cluster_id

String

云容器引擎集群编号

最大长度:64

namespace

String

命名空间。1-63字符。只能包含小写字母、数字,以及 '-',必须以字母开头,必须以字母数字结尾。

最小长度:1

最大长度:63

service_name

String

Service名称。支持汉字,英文,数字,点,中划线,下划线,且只能以英文和汉字开头,1-64字符。

说明:

中文字符必须为UTF-8或者unicode编码。

最小长度:1

最大长度:64

port

Integer

Service的监听端口号。如果是多端口Service,用户需填写一个端口。

最小值:1

最大值:65535

响应参数

状态码: 201

表10 响应Body参数

参数

参数类型

描述

vpc_channel_id

String

vpc通道编号

api_group_id

String

api分组编号

apis

Array of MicroserviceImportApiResp objects

导入的api列表

表11 MicroserviceImportApiResp

参数

参数类型

描述

name

String

API名称

req_uri

String

API请求路径

req_method

String

API请求方法

id

String

API编号

match_mode

String

API的匹配方式

  • SWA:前缀匹配
  • NORMAL:正常匹配(绝对匹配) 默认:SWA

枚举值:

  • SWA
  • NORMAL

状态码: 400

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表13 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表14 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表15 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表16 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

  • 导入CSE微服务
    {
      "group_info" : {
        "group_id" : "6329eaa17736412b988536179cd8d662",
        "group_name" : "",
        "app_id" : ""
      },
      "service_type" : "CSE",
      "protocol" : "HTTPS",
      "apis" : [ {
        "name" : "api1",
        "req_method" : "ANY",
        "req_uri" : "/test",
        "match_mode" : "SWA"
      } ],
      "backend_timeout" : 5000,
      "auth_type" : "NONE",
      "cors" : false,
      "cse_info" : {
        "engine_id" : "fde2c21c-5bd9-40f0-ad6a-81e4b6782805a",
        "service_id" : "92919f98fba80c2df13cc285c983946c90e635ff",
        "version" : "1.0.0"
      }
    }
  • 导入CCE工作负载,负载类型为无状态负载Deployment
    {
      "group_info" : {
        "group_id" : "6329eaa17736412b988536179cd8d662",
        "group_name" : "",
        "app_id" : ""
      },
      "service_type" : "CCE",
      "protocol" : "HTTPS",
      "apis" : [ {
        "name" : "dp",
        "req_method" : "ANY",
        "req_uri" : "/test",
        "match_mode" : "SWA"
      } ],
      "backend_timeout" : 5000,
      "auth_type" : "NONE",
      "cors" : false,
      "cce_info" : {
        "cluster_id" : "11069278-f9f8-11ec-b1b2-0255ac100b06",
        "namespace" : "test",
        "workload_type" : "deployment",
        "app_name" : "dp",
        "port" : 80,
        "labels" : [ {
          "label_name" : "cluster_id",
          "label_value" : "c429700c-5dc4-482a-9c0e-99f6c0635113"
        } ]
      }
    }

响应示例

状态码: 201

success

  • 示例 1
    {
      "vpc_channel_id" : "9d075537ff314a5e8e5c98bf29549b89",
      "api_group_id" : "6329eaa17736412b988536179cd8d662",
      "apis" : [ {
        "id" : "72e667087fe140529f81995b213dadbe",
        "name" : "api1",
        "req_uri" : "/test",
        "req_method" : "ANY",
        "match_mode" : "SWA"
      } ]
    }
  • 示例 2
    {
      "vpc_channel_id" : "3f56e9d4a747486caa4cfb59a47b6854",
      "api_group_id" : "6329eaa17736412b988536179cd8d662",
      "apis" : [ {
        "id" : "3b52e2c05710470b88e283deb0a805e6",
        "name" : "dp_b09d",
        "req_uri" : "/test",
        "req_method" : "ANY",
        "match_mode" : "SWA"
      } ]
    }

状态码: 400

Bad Request

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:name. 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.3030",
  "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}

状态码: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

状态码

状态码

描述

201

success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码