检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换 案例概述 准备 构建函数程序 父主题: 数据处理类实践
--计费时长 - memoryUsed: float64 --内存使用大小 - memorySize: int --内存大小 - podName: String --pod名 { "name": " platform.initReport", "startTime": "2023-02-01T00:03:50
案例概述 本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现处理DIS数据的功能。 场景介绍 使用数据接入服务(DIS)采集IOT实时数据流,需要将采集到的数据进行处理(比如格式转换),然后存储到表格存储服务(CloudTable Service)中,使用Fun
服务组合,处理物联网设备上报以及设备状态变动的相关数据。物联网设备在IoTDA 平台进行管理,设备产生的数据可以从IoTDA直接流转触发FunctionGraph 的函数运行。用户可以根据需要编写函数处理这些数据。 通常该组合,可以适用于以下场景,如将设备上报的数据在处理后进行存储到如OBS;对上报的数据进行结构化,
DIS输入数据,步骤如下。 用户进入DISDemo函数详情页,在“代码”页签下,选择配置测试事件,如图1所示,弹出“配置测试事件页”。 图1 配置测试事件 在“配置测试事件页”,输入配置信息,如图2所示。 配置测试事件:选择“创建新的测试事件”。 事件模板:选择“数据接入服务(DIS)”。
构建程序 本例提供了DIS数据流格式转换的源码和程序包(包含函数依赖),使用空白模板创建函数,用户可以下载、学习使用。 创建工程 本例使用Java语言实现DIS数据流格式转换功能,有关函数开发的过程请参考Java函数开发指南,本例不再介绍业务功能实现的代码。 下载样例源码(fss
ID,获取方式请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 String 本次查询最大返回的数据条数,最大值500,默认值100 缺省值:100 最小长度:1 最大长度:64 marker 否 String 本次查询起始位置,默认值0
设备接入”进入IoTDA控制台,单击IoTDA实例列表中实例名称“总览”页面,然后选择“规则 > 数据转发”,单击“创建规则”。 图2 创建规则 输入基本信息,然后单击创建规则。 规则名称:用户自定义。 数据来源:选择“设备消息”。 触发事件:选择“设备消息上报”。 资源空间:保持默认。 设置转发目标,单击“添加”
d" : "0", "agency_name" : "" } 响应示例 状态码: 200 create application successfully { "application_id" : "cca14689-2a40-425a-86f8-14556a0fff9c"
”页面,左侧导航栏选择“规则 > 数据转发”后,并在“规则列表”中单击目标规则名称所在行右侧的“详情” ,进入数据转发规则详情页面。 选择“设置转发目标”,并单击转发目标所在行右侧的“测试”,开始编辑测试数据。 图1 转发规则测试 输入测试数据单击 “连通性测试” 。 {
、工作流、触发器以及调用函数的权限 系统角色 无 FunctionGraph FullAccess 函数工作流服务所有权限 系统策略 无 FunctionGraph ReadOnlyAccess 函数工作流服务只读权限 系统策略 无 FunctionGraph CommonOperations
来加载在容器中的题库数据通过外部文件系统挂载盘方式挂载到容器中。 FunctionGraph通过LTS日志采集容器输出到控制台的所有日志,可以通过标准输出或者开源日志框架重定向到控制台的方式打印业务信息。打印的内容建议包括系统时间、组件名称、代码行、关键数据等来方便定位。 oom
函数”进入创建函数界面。 选择“创建空白函数”,在创建函数界面配置如下信息:函数类型选择“事件函数”、输入您自定义的函数名称,此处以“access-redis-demo”为例,选择运行时“Python3.9”,最后单击创建函数。 图1 创建函数 创建函数选择的“区域”与要访问的Redis实例所在的区域一致。
配置以下参数。 触发器类型:选择“设备接入(IoTDA)”。 实例:选择已经创建好的IoTDA实例。 数据来源、触发事件、资源空间:详情请参见表1。 表1 配置说明 数据来源 触发事件 资源空间 设备 设备添加、设备删除、设备更新 选择资源空间。IoTDA实例支持创建多个资源
使用TIMER定时触发器 本节介绍如何通过函数工作流控制台创建定时触发器,使用TIMER的计划事件功能,实现按照设置的频率或指定Cron表达式,定期触发函数运行。 关于定时触发器事件源的具体介绍,请参见支持的事件源。 约束与限制 HTTP函数不支持创建定时触发器。 前提条件 已创建函数。
连接DCS集群实例 from redis.cluster import RedisCluster as Redis from redis.cluster import ClusterNode redis_client = None def create_redis_client(context):
准备 案例实现的功能是将DIS数据格式转换,存储到表格存储服务中,所以需要先在表格存储服务创建集群,在创建集群时需要使用虚拟私有云。 创建函数之前,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到DIS和CloudTable资源。 创建虚拟私有云
选择准备中创建的日志组和日志主题,创建LTS触发器。LTS触发器配置如图1所示。 LTS日志服务的消费端在日志累积大小或日志累积时间满足条件时消费LTS日志数据,并根据订阅该组LTS日志数据的函数URN触发函数执行。 图1 创建LTS触发器 父主题: 使用FunctionGraph函数识别LTS中的异常业务日志并存储到OBS
执行结果 最小长度:1 最大长度:64 枚举值: success fail error 否 String 错误信息 最小长度:1 最大长度:64 output 是 Object 工作流的执行结果,JSON格式,仅在status为success时有值 响应参数 状态码: 200 表4 响应Body参数
配置函数的委托权限。 请参见配置网络开启函数访问VPC内资源的网络配置。 文档数据库服务DDS: 已创建DDS文档数据库实例,创建过程请参见购买文档数据库实例。 已创建DDS文档数据库,请参见新建数据库。 开启函数访问VPC内资源后,请参见设置DDS安全组规则在DDS服务安全组配置对应子网的权限。