检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换 案例概述 准备 构建函数程序 父主题: 数据处理类实践
案例概述 场景介绍 MetaERP业务场景进行微服务Serverless化改造,如图1所示,将低频使用但资源占用大的微服务逻辑,拆分成独立函数,常驻实例缩容到0;剩余微服务逻辑以Spring兼容方式进行函数化,实现函数化后的微服务快速冷启动和弹性,常驻实例减半。 图1 MFA Serverless改造前后架构
在服务控制台左侧导航栏,选择“IoT物联网 > 设备接入”进入IoTDA控制台,单击IoTDA实例列表中实例名称“总览”页面,然后选择“规则 > 数据转发”,单击“创建规则”。 图2 创建规则 输入基本信息,然后单击创建规则。 规则名称:用户自定义。 数据来源:选择“设备消息”。 触发事件:选择“设备消息上报”。 资源空间:保持默认。
添加事件源 添加APIG触发器(每个函数分别创建触发器),通过HTTP请求调用函数。 填写API名称,选择分组、发布环境、认证、请求协议、超时时间等配置,单击”确定”完成触发器创建,如图1所示。 图1 创建触发器 创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示。
步骤四:搭建函数部署脚本更新流水线 此流水线的主要作用是将函数部署脚本deploy.py发布到部署主机上,供函数更新流水线使用。 新建构建任务 在“构建&制品 > 编译构建”页面,单击“新建任务”。 源码仓库选择“functions仓库”,构建模板选择“空白构建模板”,完成单击“确定”。
测试函数 测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求Path即可),如图2所示。
编辑器不展示代码 更多函数资源的限制,请参见使用限制。 操作步骤 以使用对象存储服务OBS控制台为例,介绍如何获取存储在OBS桶中的函数代码包对象URL,并将代码包文件上传至FunctionGraph。 登录对象存储服务OBS控制台,创建桶并将函数代码包对象上传至OBS桶中。请参考通过
在服务控制台左侧导航栏,选择“存储 > 对象存储服务”进入对象存储服务控制台,单击“创建桶”,进入“创建桶”界面。 在“创建桶”界面,填写存储桶信息。 区域:根据实际情况设置。 桶名称:输入您自定义的桶名称,此处以“your-bucket-input”为例。 数据冗余存储策略:“单AZ存储”。 默认存储类别:“标准存储”。
S中的图片进行压缩 使用FunctionGraph函数为OBS中的图片打水印 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable 使用FunctionGraph函数实现通过API方式上传文件 使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换
当文件上传后更新至dew-bucket-input桶时,会生成事件,触发函数运行,将文件加解密,保存在dew-bucket-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。 图1 上传文件 触发函数自动运行 上
选择待配置的函数,单击进入函数详情页。 选择“设置 > 触发器”,单击“创建触发器”,弹出“创建触发器”对话框,本章节以创建对象存储OBS为例。 图1 创建触发器 设置以下信息: 触发器类型:选择“对象存储服务 OBS”。 触发器名称:填写自定义的名称。 事件类型:选择需要的事件类型。 单击“确定”,完成EG触发器的创建。
的函数运行。用户可以根据需要编写函数处理这些数据。 通常该组合,可以适用于以下场景,如将设备上报的数据在处理后进行存储到如OBS;对上报的数据进行结构化,清洗然后存储到数据库;根据设备状态变化进行事件通知等。 该案例重点在如何组合IoTDA 与 FunctionGraph,关于如何在IoTDA
管理函数 配置函数初始化 配置函数的常规信息 扩展函数的存储空间 配置函数的环境变量 配置函数的异步调用策略 配置函数的并发处理 配置函数的版本 配置函数的别名 配置函数的动态内存 配置函数的心跳检测 配置函数的标签 配置函数的快照式冷启动 配置Java函数类隔离和预停止 导入导出函数
审计 云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录FunctionGraph的管理事件用于审计。
当图片上传后更新至hugb-bucket-input桶时,会生成事件,触发函数运行,将上传图片打水印,保存在hugb-bucket-output中。 上传图片生成事件 登录对象存储服务控制台,进入hugb-bucket-input桶对象界面,上传image.jpg图片,如图1所示。 图1 上传图片 触发函数自动运行
图片上传至your-bucket-input桶,使用工具模拟客户端触发函数流运行,将上传图片旋转180°,并以流数据返回给客户端。 上传图片 登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpeg图片如图1,上传完成后如图2所示。 图1 示例 图2
一致问题,保证被执行的函数代码为正确版本,当函数创建或修改代码时,FunctionGraph对用户的函数代码签名加密,为其生成代码签名,并存储在函数元信息内。 FunctionGraph在函数执行时,为当前执行的代码生成签名,然后将其与函数元信息内的代码签名进行对比,仅允许运行通
进阶使用:通过挂载同一SFS文件系统实现多用户资源共享 应用场景 模型文件普遍占用大量内存,在多用户使用场景下,每个用户复制一份模型文件会导致不必要的存储空间浪费。通过将不同用户的应用挂载到同一SFS文件系统下,能够满足多人共享模型文件资源的需求,同时为了避免不同用户使用期间的推理结果相互影响,可以在Stable
按需计费 适用场景 函数工作流使用场景广泛,例如实时文件处理、实时数据流处理、Web移动应用后端和人工智能等场景。 适用计费项 函数工作流实际费用是由请求次数费用、执行时间费用、函数流节点执行次数、GPU计量时间、磁盘计量时间、闲置内存计量时间和其他费用构成,各计费项按需计费说明请参见表1。
的函数运行。用户可以根据需要编写函数处理这些数据。 通常该组合,可以适用于以下场景,如将设备上报的数据在处理后进行存储到如OBS;对上报的数据进行结构化,清洗然后存储到数据库;根据设备状态变化进行事件通知等。 工作流+函数:自动化处理OBS中数据 本实践基于函数流服务实践所编写,