检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless改造前后架构
储链接获取方法请参见OBS对象存储服务。 运行时语言 选择运行时语言。 描述 对于依赖包的描述信息,可以不填。 单击“确定”,完成依赖包的创建。默认首次创建的依赖包版本为“1”。 单击列表中的依赖包名称,进入版本历史界面,可以查看当前依赖包下的所有版本和版本相关信息。当前支持针对同一依赖包,进行不同版本的系统化管理。
击”确定”完成触发器创建,如图1所示。 图1 创建触发器 创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示。 图2 请求路径 父主题: MFA微服务serverless化
如下信息:函数类型选择“事件函数”、输入您自定义的函数名称,此处以“access-redis-demo”为例,选择运行时“Python3.9”,最后单击创建函数。 图1 创建函数 创建函数选择的“区域”与要访问的Redis实例所在的区域一致。 根据Redis实例类型选择示例代码覆盖函数代码详情页中index
s,灰度版本选择V2,调整权重,实现V1到V2的灰度升级。 权重用于分派接收到的流量给后端版本,具体数值视业务情况自定义。 图4 编辑别名 创建V3版本,编辑alias,对应版本设置为V2,灰度版本选择V3,调整权重,实现V2到V3的灰度升级。 图5 创建V3版本 图6 编辑别名
准备 该场景涉及微服务与后端服务的调用,因此需要提前准备好对应的后端服务。用户可以使用自己搭建的后端服务,也可以使用华为云提供的云服务。 若后端服务需要通过虚拟私有云(VPC)访问,函数需要进行额外配置,若可以通过公网访问后端服务,可以跳过以下步骤2和步骤3。 创建Java函数(
图解函数工作流服务
获取响应码 getServiceType() 获取事件触发的服务名称 getResourceType() 获取事件触发的资源类型 getResourceName() 获取事件触发的资源名称 getResourceId() 获取事件触发资源的唯一标识 getTraceName() 获取事件名称
测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。 图2
创建函数工程:在本地进行编码实现函数功能。 上传工程到OBS桶:将代码文件压缩为zip格式并上传到已创建的OBS桶中,记录代码文件的OBS链接。 创建函数:调用API通过OBS链接创建函数。 步骤1:创建函数工程 编写打印helloworld的代码。 打开文本编辑器,编写helloworld函数,代码如下,文件命名为“helloworld
使用FunctionGraph是否需要开通计算、存储、网络等服务? 用户使用FunctionGraph时,不需要开通或者预配置计算、存储、网络等服务,由FunctionGraph提供和管理底层计算资源,包括服务器CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡
认值 操作:编辑或删除设置的参数 输入过滤表达式 基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。 输出过滤表达式 基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。 开启容灾函数 开
置预留实例个数。 单击“确定”,完成预留实例的创建。 预留实例创建完成后,只支持修改预留实例的个数。 通过函数创建数量可变的预留实例 用户在不同的时间段,业务使用的实例数可能不一样,您可以通过定时触发器调用函数,为各个时间段设置不同的预留实例数,避免在业务繁忙时未设置预留实例,导
骤。 免费额度。 函数工作流服务每个月都会提供一定数量的免费额度,免费额度是子主账户共同使用,具体详情请参见免费额度。 当免费额度使用完后,若您继续使用函数工作流时,账户的可用额度小于待结算的账单时,即被判定为账户欠费。欠费后,可能会影响您的服务资源的正常运行,请及时充值,具体详情请参考账户充值。
函数调用绑定在APIG的域名的服务,报域名无法解析? 函数服务目前只能解析pod域的域名或者在华为dns服务购买的域名。 父主题: 通用问题
说明 *事件通道 事件通道负责接收来自事件源的事件。函数流仅支持编排自定义事件通道:您自行创建的事件通道,用于接收自定义事件源产生的事件。 详情请参见事件通道概述。 *事件源 事件源是事件的来源,函数流仅支持自定义的应用作为事件源,通过自定义的事件通道发布事件到事件网格。 详情请参见事件源概述。
触发器类型:选择“对象存储服务 OBS”。 触发器名称:填写自定义的名称。 事件类型:选择需要的事件类型。 单击“确定”,完成EG触发器的创建。 配置EventGrid事件触发函数 返回函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。 选择待配置的函数,单击进入函数详情页。
认值 操作:编辑或删除设置的参数 输入过滤表达式 基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。 输出过滤表达式 基于当前流程的json输出参数,可以使用JSONPath格式来选择性的过滤出下一流程的输出参数。 开启容灾函数 开
操作:编辑或删除设置的参数 输入过滤表达式 基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。 结果输出路径 通过JSONPath表达式确定节点的输出数据的路径。 开启容灾函数 开启后,当前节点名称不能与其他函数节点名称重复。 流程中的所有节点
从GitHub下载huawei-nodejs服务的.zip文件。 在当前工作目录中创建名为my-huawei-service的新目录。 在此目录中解压文件。 如果根服务中存在serverless.yml,则将服务重命名为my-huawei-service。 从GitHub URL中的目录安装服务 serverless