使用HSF-REST功能,您可以将您在EDAS中的HSF服务快速发布到云服务总线CSB上,并支持外部服务通过Restful API访问和调用该服务。
前提条件
在开放HSF服务前,您需要在应用所在VPC内新建或扩容服务开放实例,详情请参见
管理服务开放实例。如果选择扩容实例,还需要提交
工单,由技术支持人员为您升级实例版本。
步骤一:选择HSF服务
- 登录EDAS控制台。
- 在左侧导航栏中选择。
- 在HSF服务列表页面依次选择地域、EDAS命名空间、HSF应用名、HSF服务名:版本号,然后单击搜索。
如果服务较多,可以在HSF方法名右侧文本框中输入关键字,然后单击搜索,以提高搜索效率。HSF方法名支持不区分大小写的部分匹配。
- 在HSF服务列表中选中要开放的服务。
步骤二:发布HSF服务
- 选择HSF服务后,在HSF服务列表右上角单击发布REST服务。
- 在发布REST服务对话框中设置发布参数,然后单击确认。
发布参数说明:
- 应用所在VPC:HSF服务所属应用所在的VPC。
- 目标CSB实例:要发布到的CSB实例。
- CSB服务组:要发布到的CSB实例中的服务组。如果当前实例中无服务组,可以在右侧单击新建服务组创建服务组,然后再选择。
- CSB服务版本:发布的服务的版本。
- HSF超时时间(ms):访问该服务的超时时间。
- 每秒调用链限制:服务开放后,每秒允许调用该服务的最大值。0表示不限制。
- 公开访问:是否允许公开访问。公开访问指不需要订购服务就可以访问和调用该服务。
- 覆盖发布:如果之前已经发布过,此次发布是否覆盖之前发布的版本。
步骤三:确认发布结果
- 在EDAS控制台左侧导航栏中选择。
- 在HFS服务列表页面中的已发布CSB服务列查看您之前发布的HSF服务。
说明 在HSF服务发布到CSB后,就变成了一个CSB服务。
如果发布的服务较多,可以选择地域、EDAS命令空间、HSF应用名、HSF服务名:版本号,并输入HSF方法名关键字,然后单击搜索,方便查找。
- 单击服务名,进入CSB控制台,可以查看该服务的详细信息。
步骤四:访问发布的HSF服务
在HSF服务发布到CSB后,您可以通过CSB HTTP-SDK来访问该服务。详情请参见SDK 参考。
由于CSB上只定义了HSF入参的第一级参数名及类型,故对于自定义类的复杂结构参数,需传递对应类对象的完整JSON串给CSB。如HSF的第一个入参的Java定义如下:
public class Item {
public String p1;
public String p2;
}
CSB客户端调用CSB中发布的HSF服务时,示例代码如下:
String requestURL = "http://<CSB服务访问地址>:8086/CSB";
String apiName = "<HSF-REST服务名>";
String version = "<HSF-REST版本号>";
Map<String, String> params = new HashMap<String, String>();
params.put("inArg0", "{'p1': '<参数值1>','p2': '<参数值2>'}"); //此参数值应为HSF参数类对象的JSON串String result = HttpCaller.doPost(requestURL, apiName, version, params);