导语

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。

连载第四十四期

《现场定制:定制第三方接口接入》


# 第三方接口接入


通过定制 provider 来对接第三方接口,有 2 种调用方案:


1.直接调用第三方接口 url,但这里会有跨域的问题,需要第三方接口开放跨域访问

2.将第三方接口注册到优维的 api_gateway,这样不会有跨域的问题,同时还提供了:

  • 后端 api 不需要直接暴露给浏览器,避免安全问题

  • 名字服务路由能力,避免单点和 hardcode ip

  • 当前登录用户传递


# api_gateway 配置


首先,这要说明下部署架构,如下图所示:



api_gateway 提供了统一的转发请求服务(如果是集群部署,则在对外服务的逻辑机器上,一般有 2 台或 3 台)


cd /usr/local/easyops/api_gateway/vim conf/conf.default.yaml


你将能看到如下配置:


gateway:  services:    - name: cmdb.* # 匹配 uri 的前缀      addr_type: ens # ens|direct, direct 表示不走 ens 解析,直接配置目标地址,不填时默认为 ens      service_name: logic.cmdb.resource      hostname: cmdb_resource.easyops-only.com      default_policy: allow # allow|deny


conf.default.yaml 为默认配置,如果需要现场修改,请在 conf.yaml(如果没有,则新建)做个性化修改,实际配置将会合并两者


vim conf/conf.yaml


将如下内容添加到 conf.yaml 里面


gateway:  services:    # 添加如下配置,将匹配浏览器调用的 uri:/api/gateway/your-api-prefix.xxx/aa/bb/    - name: your-api-prefix.* # 匹配 uri 的前缀      addr_type: ens      service_name: logic.your-api-service-name      hostname: your-api-host-name      default_policy: allow # allow|deny


随后注册 service_name:/usr/local/easyops/ens_client/tools/register_service.py logic.your-api-service-name api-port api-ip


可注册多个实例,注册多个则在调用时候为轮询策略


[root@monitor_10_0_5_10 api_gateway]# /usr/local/easyops/ens_client/tools/register_service.py logic.your-api-service-name 8000 192.168.100.89try register service(logic.your-api-service-name, 8000) at (127.0.0.1:9100)register service(logic.your-api-service-name, 8000) success![root@monitor_10_0_5_10 api_gateway]# /usr/local/easyops/ens_client/tools/get_all_service.py logic.your-api-service-name23377279359414395 192.168.100.89 8000


如果想查看当前注册的所有名字服务,请在浏览器手动输入 http://your-easyops-console-host/admin/ens 查看列表


- end -