如何注册原生服务
注册Native Service后,才可以在AstroZero的脚本、服务编排等中调用原生服务的接口,也可将该原生服务开放给第三方系统进行访问。
注册原生服务
在AstroZero中注册原生服务有两种方式,方式一是在环境配置的“开发配置 > 原生服务 > 服务注册”中注册,另一种方式是在原生服务开发页面的“导航”中注册。如何在原生服务开发页面注册原生服务,请参见注册Native Service。
- 参考登录环境配置中操作,登录AstroZero环境配置。
- 在左侧导航栏中,选择“开发配置 > 原生服务 > 服务注册”。
- 单击“+ 注册服务”,在注册服务弹框的“选择服务”下拉列表中,选择安装原生服务中已安装的原生服务。
- 参照表1设置其他参数,单击“确认”。
表1 注册原生参数说明 参数
说明
名称
注册的服务名称。
API服务地址
Ingress的访问地址,需包含协议头http或者https。
若购买的为专享版AstroZero,前台页面调用原生服务的API时,需要保证AstroZero和原生服务处于同一个虚拟私有云 VPC。若AstroZero和原生服务处于不同VPC,请参考VPC对等连接中操作,创建VPC对等连接,打通VPC。在AstroZero注册服务时,“API服务地址”里的IP填入Ingress的小网IP。
认证方式
访问原生服务的鉴权认证方式。
- 无认证:不需要鉴权认证。
- 用户名&密码:选择该方式,需要配置具体的“用户名”和“密码”。
- JWT(JSON Web Tokens,简称JWT):选择该方式,需要配置具体的“JWT密钥”。
- OAuth 2.0:选择该方式,需要配置如下参数。
- 授权模式:即OAuth 2.0中的grant_type字段的取值,目前支持两种模式“客户端模式”(client_credentials)和“密码模式”(password)。
- 认证地址:获取access_token的请求路径,其服务应遵循RFC6749中的说明。
- 客户端ID:即clinet_id,客户端模式下必填。
- 客户端密钥:即client_secret,客户端模式下必填。
- 用户名:“授权模式”为“密码模式”时,才需要配置。
- 密码:“授权模式”为“密码模式”时,才需要配置。
注册后,在“已注册服务”列表中,可以看到当前账号已注册的所有原生服务。
取消原生服务注册
- 参考登录环境配置中操作,登录AstroZero环境配置。
- 在左侧导航栏中,选择“开发配置 > 原生服务 > 服务注册”。
- 在注册服务列表中,单击已注册的原生服务。
- 在原生服务注册详情页面,单击“取消注册”,即可取消该原生服务的注册。
如何使用原生服务
原生服务在AstroZero内的使用场景包括但不限于:
- 在服务编排中调用
图1 在服务编排中调用
- 供外部系统通过Restful接口调用
通过下面的REST接口,调用原生服务,该调用方式只适用于外部接口。
https://AstroZero域名/native/NativeService1/0.1.0/health
其中,“AstroZero域名”请配置为AstroZero对外提供的默认域名,“/native/NativeService1/0.1.0/health”为该服务的公共接口的开放URL,可以在公共接口详情中查询获得。
图2 在开放接口中调用
- 在脚本中调用
原生服务集成到AstroZero上,且在AstroZero上自定义了公共接口后,可以在脚本中内部调用公共接口。
脚本部分示例如下:
//其中"appcube.cn-north-4.huaweicloud.com"为对外提供的默认域名 let resp3 = httpClient.post("https://appcube.cn-north-4.huaweicloud.com"+ "/native/NativeService1/0.1.0/health", callOptions3); console.log(context.getHost()) console.log(resp3.body); if (resp3.body.resCode == "0" && resp.body.result) { console.log('auth success, currrent user is: ', resp3.body.result.name) }
其中,“appcube.cn-north-4.huaweicloud.com”为对外提供的开发态默认域名,“/native/NativeService1/0.1.0/health”为该服务的公共接口的开放URL,可以在公共接口详情中查询获得。该调用方式只适用于外部接口。
- 在页面中调用
- 在高级页面,可以在Widget代码中,调用原生服务的自定义公共接口。
- 在标准页面,可以在事件代码中,直接调用原生服务的自定义公共接口或通过定义服务模型,关联调用原生服务的服务编排,再在页面事件代码中,调用服务模型从而来调用原生服务。在标准页面上传组件中,还可以调用原生服务的自定义接口实现上传功能。标准页面中,上传组件功能介绍请参见上传。
- 在工作流中调用
在服务编排中调用原生服务后,向工作流设计页面的泳道中拖入“调用服务编排”图标。选择,在“服务编排配置”页面,选择需要调用的服务编排,配置输入输出参数。
图3 在工作流中调用
- 在触发器中调用