检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless改造前后架构
构建程序 通过Web托管方式改造微服务。改造过程中,如果微服务是基于spring框架,则需要使用FunctionGraph提供的SDK,即在pom.xml文件中添加步骤1中依赖。此时,您只需修改配置以及打包方式即可将微服务改造成serverless函数。具体操作步骤如下: 配置微服务依赖。
APIG网关事件 华为云函数工作流可以通过API网关(APIG)创建基于函数的API终端节点。 要创建HTTP终端节点作为华为云函数工作流的事件源,请使用http事件语法。 HTTP终端节点 此设置指定当有人通过GET请求访问函数API终端节点时,应运行first函数。您可以在部署服务后运行serverless
准备 该场景涉及微服务与后端服务的调用,因此需要提前准备好对应的后端服务。用户可以使用自己搭建的后端服务,也可以使用华为云提供的云服务。 若后端服务需要通过虚拟私有云(VPC)访问,函数需要进行额外配置,若可以通过公网访问后端服务,可以跳过以下步骤2和步骤3。 创建Java函数(
function字段介绍 function字段 表1 function字段说明 参数名 必填 类型 参数描述 functionName True String 函数名称 handler True String 函数执行入口,规则:xx.xx,必须包含“.” runtime True
华为云函数工作流(FunctionGraph)Yaml规范 字段解析 表1 参数说明 参数名 必填 类型 参数描述 region True Enum Enum funtion True Struct 函数 trigger False Struct 触发器 Yaml完整配置 华为云
本章节主要指导使用Go语言开发应用的用户,将业务部署到FunctionGraph。 由于HTTP函数本身不支持Go语言直接代码部署,因此本章节将以转换成二进制的方式为例,将Go编写的程序部署到FunctionGraph上。 操作流程 构建代码包 创建源文件main.go,代码如下: //
添加事件源 添加APIG触发器(每个函数分别创建触发器),通过HTTP请求调用函数。 填写API名称,选择分组、发布环境、认证、请求协议、超时时间等配置,单击”确定”完成触发器创建,如图1所示。 图1 创建触发器 创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示。
测试函数 测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。
6/rtsp/python/bin/python3 -u $RUNTIME_CODE_ROOT/index.py 如需使用其他语言,则参见表3更换语言路径,程序包路径无需更换。 表3 多语言路径说明 语言 路径 Java8 /opt/function/runtime/java8/rtsp/jre/bin/java
在“编辑”下拉菜单中选择“注释”,可以编辑注释,如图10所示。 图10 编辑注释 在“注释”命令的展开菜单中,选择“切换行注释”打开某一行代码的注释,选择“切换块注释”打开某一块代码的注释,选择“添加行注释”增加一行注释,选择“删除行注释”删除一行注释。 在“编辑”下拉菜单中选
运行日志的采集、加工和转换。 通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,把过滤后的日志转存到另外的日志流中,如图1所示。 图1 处理流程 案例价值点 通过云日志服务LTS,快速完成日志采集和转换。 基于Serverle
送告警消息的功能,并将告警日志投递至OBS桶中集中存储。 场景介绍 通过LTS云日志服务,快速完成ECS等服务器的任务运行日志采集、加工和转换。 通过函数工作流服务中的函数创建LTS触发器获取日志数据,经由自定义函数对日志中的关键信息进行分析和处理,过滤出告警日志。 SMN消息通
使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable 使用FunctionGraph函数实现通过API方式上传文件 使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换 使用FunctionGraph函数对OBS中的文件进行加解密
查看函数监控信息 FunctionGraph会统计函数的运行时指标,显示的指标是函数运行时活动的聚合视图。要查看不同函数版本的指标,可在查看指标前切换函数版本,查询不同版本对应的监控信息。 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。 选择待配置的函数,单击进入函数详情页。
ddeploy的IP地址组,完成后单击“确定”。 图1 添加入方向规则 返回弹性云服务器页面,单击部署主机ECS的名称,将部署主机的安全组切换为functions-deploy安全组。 安装Python库 执行如下命令,安装pyyaml库和pycryptodome库。对函数的cam
设备属性上报 设备消息 设备消息上报 设备消息状态 设备消息状态变更 设备状态 设备状态变更 产品 产品添加、产品删除、产品更新 设备异步命令状态 批量任务状态变更 运行日志 上报平台日志 批量任务 批量任务状态变更 单击“确定”,完成IoTDA触发器的创建。 触发函数 返回函数工作流控制台,在左侧的导航栏选择“函数
mkdir -m 550 ${HOME}表示构建容器时创建${USER_NAME}用户的home目录。 USER:切换${USER_NAME}用户。 WORKDIR:切换工作目录到${USER_NAME}用户的“${HOME}”目录下。 COPY:将main.js和package.
“华东-上海一”。 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable 本章节介绍如何使用函数结合数据接入服务(DIS)采集IOT实时数据流,并将采集到的数据进行格式转换,存储到表格存储服务(CloudTable Service)中。 使用Fu
mkdir -m 550 ${HOME}表示构建容器时创建${USER_NAME}用户的home目录。 USER:切换${USER_NAME}用户。 WORKDIR:切换工作目录到${USER_NAME}用户的“${HOME}”目录下。 COPY:将main.js和package.