检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph是否需要开通计算、存储、网络等服务?
已配置函数的分布式消息服务DMS委托权限,委托的创建请参见配置函数的委托权限。 请参见配置网络开启函数访问VPC内资源的网络配置。 分布式消息服务Kafka: 已创建Kafka实例,创建操作请参见购买Kafka专享版实例。
使用FunctionGraph函数对MFA微服务进行Serverless化改造 案例概述 准备 构建程序 添加事件源 测试函数 父主题: 函数构建类实践
FunctionGraph会将轮询得到的消息作为参数,用于调用相应函数。 关于分布式消息服务RabbitMQ触发器的事件源介绍,请参见支持的事件源。
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。
配置函数流的EG服务组件 函数流支持配置事件网格服务(EG)服务组件,EG节点会发布已配置的事件至指定的EG事件通道,如何创建EG资源请参见开始使用事件网格。 约束与限制 EG服务组件当前仅支持华北-北京四。
图1 创建触发器 设置以下信息: 触发器类型:选择“对象存储服务 OBS”。 触发器名称:填写自定义的名称。 事件类型:选择需要的事件类型。 单击“确定”,完成EG触发器的创建。
如果根服务中存在serverless.yml,则将服务重命名为my-huawei-service。
图2 请求路径 父主题: 使用FunctionGraph函数对MFA微服务进行Serverless化改造
函数服务目前只能解析pod域的域名或者在华为dns服务购买的域名。 父主题: 配置函数
配置函数流的函数服务组件 函数流支持配置函数服务组件,通过该组件可以关联已创建的函数,进而实现业务需求。 约束与限制 通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。
配置函数流的服务控制器组件 服务控制器组件可以将多个函数操作合并成一个原子节点进行管理。 函数流的服务控制器组件支持两种执行模式:串行模式和并行模式。 约束与限制 通过数据工坊DWR服务创建的函数流,在函数工作流控制台只能查看,不能编辑和删除,相关操作请在DWR服务中执行。
准备 该场景涉及微服务与后端服务的调用,因此需要提前准备好对应的后端服务。用户可以使用自己搭建的后端服务,也可以使用华为云提供的云服务。 若后端服务需要通过虚拟私有云(VPC)访问,函数需要进行额外配置,若可以通过公网访问后端服务,可以跳过以下步骤2和步骤3。
通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 {自定义key} 是 Object 函数异步执行并返回预留实例请求body体。
response_context.statusCode 调用函数的系统返回码。当该返回码不为200时,说明出现了系统错误。 response_context.function_error 调用错误信息。 response_payload 执行函数返回的原始负载。
信息 serverless info命令显示有关已部署服务的信息,在您的服务目录中运行此命令。 serverless info 父主题: CLI参考
部署 serverless deploy命令通过华为云API部署整个服务。当您编辑serverless.yml文件更改了服务时,请运行此命令。
需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。 图2 requestPath配置 测试独立函数。 统一使用POST请求。 请求url为添加事件源创建的APIG触发器地址。
安装NFS服务。
暂不支持 使用分布式消息触发器 DMS ReadOnlyAccess 分布式消息服务(DMS)的只读权限。