您在CSB实例中发布服务后,可以管理发布的服务,包括管理服务的生命周期、设置黑白名单、复制服务、导入服务、导出服务和转换服务的定制化参数等。

管理生命周期

我的服务页面可以管理服务的生命周期。

生命周期包含以下状态:

  • 激活启动)
  • 停止
  • 待审批等待一次审批
  • 审批驳回一级审批驳回
  • 等待二级审批
  • 二级审批驳回
  • 注销

管理服务的生命周期包括启动停止注销

  • 服务可以在停止启动两种状态间切换,但是一旦注销则不可以再启动。
  • 服务注销是服务生命周期的最终状态,意味着不可以对该服务进行变更,启动、停止和订购操作。

设置黑白名单

您可以设置服务访问的黑白名单。

  1. 我的服务页面选择目标服务,在该服务的操作列中选择更多 > 黑白名单
  2. 编辑黑白名单对话框中单击黑名单白名单配置页签,进行配置,然后单击确定
    • 黑名单:输入拒绝访问的IP地址,单击添加
    • 白名单:输入允许访问的IP地址,单击添加
    • 配置:在默认策略右侧单击通过拒绝,设置默认策略,然后单击确定

      对于既不在白名单里,也不在黑名单里的IP地址,通过表示无需鉴权即可访问,拒绝表示该服务默认不允许任何IP地址访问。

    IP地址的添加规则说明:

    可以添加某个具体IP地址,例如 192.168.1.1;也可以设置带有掩码的的IP地址段,例如 192.168.1.1/24/后面的取值范围是1~32,代表子网掩码的位数,24表示掩码为:255.255.255.0)。
    说明
    • 在白名单中添加某个调用者的IP后,该调用者不做鉴权即可访问该服务。
    • 在黑名单中添加某个调用者的IP后,该调用者不能访问该服务。
    • 如果某个调用者的IP即被添加到白名单,又在黑名单里,则黑名单优先,即拒绝访问该服务。

复制服务

复制服务是用来快速的将一个已经存在的服务复制成一个新的服务,它的接入和开放协议及参数等信息保持不变,改变的是服务名、服务版本或者服务组。

  1. 我的服务页面选择目标服务,在该服务的操作列中选择更多 > 复制
  2. 在弹出的操作确认对话框,单击确认
    说明 复制服务的初始状态为 停止状态。
  3. 复制服务对话框输入服务全名服务版本,并选择所属服务组,然后单击确认
    复制服务
说明
  • 服务复制仅限于在当前实例中。
  • 复制过程中要保证新服务的服务全名+服务版本在本实例中保持唯一,并且其它同名的服务已经处于注销状态。

导出和导入服务

您可以导出和导入服务,且都支持批量操作。

  • 导出服务

    1. 我的服务页面搜索需要导出的任务。

      支持按照服务名服务组名服务别名后端接入端点进行搜索服务。

    2. 我的服务页面单击导出服务
    3. 在弹出的操作确认对话框中单击确认
    4. 导出服务对话框中复制当前服务的JSON格式内容,保存到文本编辑器,将当前服务导出。

      如果导出多个服务的JSON代码,需要按照[json1, json2,...]格式,其中,json1,json2为服务导出时的单个服务的完整的JSON串。

      说明 格式串中最外层使用方括号([])形成一个导入的文本。
  • 导入服务
    1. 我的服务页面单击导入服务
    2. 批量导入服务对话框中选择要导入的目标服务组,设置导入选项,并将导出服务的JSON代码串粘贴到导入服务的JSON串区域,然后单击确认批量导入服务

      导入过程中如果一条服务导入失败,可以选择继续导入其他服务或者停止导入。

      说明
      • 如果要导入的服务已经在本服务组中存在,可以对导入JSON文本中的service_name值进行修改,然后保存进行导入。
      • 导入服务时不会导入级联服务,只会把需要导入的服务导入到当前实例下指定的服务组中。

转换服务的定制化参数

CSB支持服务入参和出参的定制化参数转化,目前仅支持HTTP协议开放成HTTP协议的场景,数据类型仅支持form和JSON,脚本只支持Groovy。

  1. 我的服务页面选择目标服务,在该服务的操作列中选择更多 > 脚本
  2. 参数映射脚本配置对话框选择请求脚本响应脚本,在请求脚本响应脚本页签中输入编程语言(默认为GROOVY),在编辑代码区域编写脚本,然后单击确认脚本配置

    参数映射脚本配置说明:

    • 请求脚本中,数据在简单映射后执行,对于form数据会增量覆盖简单映射后的数据;对于JSON数据会全量覆盖调用方传递过来的数据,默认为importRequest=exportRequest
    • 响应脚本中,目前仅支持JSON,数据会全量覆盖源服务的响应数据,默认为exportResponse=importResponse
    • 脚本映射的结果会作为界面映射的输入,建议使用自定义映射就不要使用界面映射,逻辑更清晰。
    • 支持4个变量:

      exportRequest //开放服务请求参数
      importRequest //接入服务请求参数
      exportResponse //开放服务返回参数
      importResponse //接入服务返回参数
    • HTTP请求结构详解:

      {
      header:{"":"","":""},//key和value都必须是字符串。
      query:{"name":["jackson","catalina"],"age":"1"},  //key字符串,value可以是字符串(单值),或者是字符串的list(多值)。
      body:? // form:{"name":["jackson","catalina"],"age":"1"},json:["",""] or {...}
      }