EMQX Cloud 自定义函数实现多种 IoT 数据形式的灵活转化

简介: 全托管MQTT云服务EMQX Cloud新推出自定义函数功能:可根据用户自定义的脚本对设备上报的数据进行预处理,帮助便捷实现数据格式统一。

物联网场景中,各类设备终端的种类繁杂,所使用的通信协议各异,从而使得应用层的数据格式也各不相同。为了帮助用户实现统一数据格式,EMQX Cloud 最近推出了自定义函数功能:根据用户自定义的脚本对设备上报的数据进行预处理,并将脚本返回的任意符合用户使用场景需求类型的数据流流转至消息订阅方。

这一功能可用于多种设备端上报数据预处理场景,如将指定范围内的数据进行数据持久化,或是将非标准格式数据处理为符合应用标准的格式,以便应用层直接使用等。在之前的文章中,我们以数据编解码、格式处理与业务告警等场景为例,向大家介绍了自定义函数是如何在具体业务场景中发挥价值的。

在本篇文章中,我们将对这一功能的使用操作进行详细讲解,帮助大家更好地在实际项目中快速使用。

自定义函数流程 图1.png

开通自定义函数

自定义函数功能为 EMQX Cloud 增值服务,目前仅在专业版提供,且用户需要创建在阿里云(张家口之外的地区)的专业版部署开通该增值服务。

您可以通过以下两个入口开通自定义函数。

方式一:登录 EMQX Cloud 控制台,在顶部菜单栏点击「增值服务」,找到自定义函数,点击「开通服务」,并在提示弹框中点击确认。

开通自定义函数 图2.png

方式二:在部署详情页面的左侧菜单栏找到「自定义函数」并点击「开通服务」,并在提示弹框中点击确认。

开通自定义函数 图3.png

选择您需要开通自定义函数服务的部署(注:仅阿里云专业版非张家港区域部署可开通)

选择您需要开通自定义函数服务的部署 图4.png

在完成服务开通流程后, 等待约 2-3 分钟即可开通配置成功。

等待约 2-3 分钟即可开通配置成功 图5.png

计费说明

自定义函数服务主要通过函数的调用次数来计算费用,计费规则如下:

  1. 创建函数不收取任何费用,一个部署下可以创建最多 20 个函数。
  2. 成功创建的函数将在数据集成的规则当中被引用和调用,每成功调用一次计入一次调用次数。
  3. 每一个创建了函数计算的部署,每月都将获得 5 万次的免费调用次数,免费调用次数将在每月初更新
  4. 当月的免费调用次数用完之后,将会以 ¥0.03 / 万次的价格在帐户余额中扣取,费用可以在满 1 万次的时间点小时账单中查看到。
  5. 调用次数将会在每月底进行重置,不足 1 万次以 1 万次计价。

计费示例:

某用户当月调用次数为 506,500 次,扣除免费的 5 万次调用次数,付费调用次数为 456,500 次,前 450,000 次计费为 45 * ¥ 0.03 = ¥ 1.35 收费,最后的 6500 次由于不足 1 万次,将在月底以 1 万次的价格(0.03)进行结算,所以当月的总费用为 ¥ 1.38。

使用自定义函数

功能开通成功后,您可以通过下列流程配置使用自定义函数。

1、点击「新建」,创建函数,并设置自定义函数数据转化规则。

创建函数 图6.png

2、输入函数名称,该名称将在之后创建的规则中被引用,一旦创建后,该名称将不可修改。

输入函数名称 图7.png

3、在脚本输入框中输入 JS 脚本函数

  • 脚本函数的入口函数名称为 codec,入口函数名称不能改变
  • 输入参数为 payload,在规则中调用函数时候输入的参数;
  • codec 函数中需要返回函数运算之后的值,无 return 值将无法通过测试;
  • 脚本执行时间不能超过 3 秒,否则将无法通过验证,不建议在脚本中编写高耗时的操作;
  • 自定义函数支持 ECMAScript 5.1 及部分 ECMAScript 6 的语法,请参考以下 ES6 方法箭头函数

    • Promise
    • 解构符
    • Class
    • 模版符号

4、选择 payload 输入类型,目前自定义函数支持 3 种数据类型的输入:Byte、JSON、字符串。

选择 payload 输入类型 图8.png

具体转化示例请参考自定义函数帮助文档:创建函数

5、新建成功后,可按照函数名称、状态搜索找到设置好的自定义函数,可进行修改、删除操作。
查看自定义函数 图9.png

6、调用函数

函数定义完成后,您可在数据集成的规则中进行调用。

如果需要快速验证自定义函数脚本是否成功配置,您可以通过新建空动作调用定义好的函数。

具体调用规范可查看:调用函数

7、检查错误日志

您可以在日志模块中筛选自定义函数相关的错误日志进行查看,根据错误日志提示快速定位自定义函数配置的错误并解决问题。

检查错误日志 图10.png

关于更多可查看:自定义函数场景案例

结语

通过本文,用户可以使用自定义函数这一最新功能实现满足自身需求的物联网数据格式转换,更加轻松地为上层应用提供数据支持。目前自定义函数功能已开放免费试用,我们期待您的反馈!

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/emqx-cloud-custom-functions

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
8月前
|
传感器 监控 数据可视化
手把手教你用IoT设备监控家庭环境数据
本实验带您体验如何通过六合一传感器(温度、湿度、二氧化碳、PM2.5、PM10、甲醛)实现家庭环境数据实时采集,并搭建可视化大屏实时监控。
310 0
|
8月前
|
小程序 算法 物联网
10分钟体验IoT数据可信上链
模拟IoT设备采集的数据上链,通过配置数据处理规则、路由规则实现数据完整性和机密性,实现数据可信上链。
284 1
|
8月前
|
监控 物联网 机器人
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
193 2
|
12月前
|
消息中间件 网络协议 物联网
「物联网架构」HiveMQ和Apache Kafka流式处理IoT数据和MQTT消息
「物联网架构」HiveMQ和Apache Kafka流式处理IoT数据和MQTT消息
|
存储 SQL 人工智能
如何解决IoT数据的存储计算的实践案例
物联网数据往往来自于智能设备或者传感器设备,这些设备只要运行中,将持续不断产生设备数据。同时这些数据的使用价值根据场景千差万别,其中时效性对不同场景有很大影响,如何解决好存储和计算是物联网数字化场景的关键问题。
|
存储 运维 DataWorks
如何解决IoT数据入仓的客户实践
随着物联网应用场景的深入,企业开始进入挖掘设备上传的数据,用于客户端应用扩展后服务营收,同时也用于数字化运营、风控,帮助企业高效治理,和产品演进决策依据。 但是物联网数据上云后涉及到的大数据链路开发治理,以及产生的成本都是企业需要面临的挑战,本文以一个真实客户案例整理出的实践案例,介绍如何基于阿里云物联网平台数据服务产品能力搭建企业物联网大数据应用架构。
|
传感器 数据采集 运维
当一座钢铁森林 变成IoT智能化数据
摒弃传统人力运维,首钢京唐为生产设备装上“智能听诊器”!
395 0
当一座钢铁森林 变成IoT智能化数据
|
数据采集 小程序 前端开发
IoT小程序在展示中央空调采集数据和实时运行状态上的应用
IoT小程序框架在跨系统平台(AliOS Things、Ubuntu、Linux、MacOS、Window等)方面提供了非常优秀的基础能力,应用的更新升级提供了多种方式,在实际业务开发过程中可以灵活选择。IoT小程序框架通过JSAPI提供了调用系统底层应用的能力,同时提供了自定义JSAPI扩展封装的方法,这样就足够业务开发通过自定义的方式满足特殊的业务需求。 IoT小程序在前端框架能力、应用框架能力、图形框架能力都进行了适配和优化。那么接下来,我们按照其官方步骤搭建开发环境,然后结合中央空调数据采集和状态显示的实际应用场景开发物联网小程序应用。
23694 6
IoT小程序在展示中央空调采集数据和实时运行状态上的应用
|
存储 SQL 数据采集
IoT设备数据的存储、解析和价值挖掘实践
本实践以一个道路交通场景下设备运营管理的真实需求为背景来介绍如何使用物联网平台的数据服务完成对设备数据的存储、备份、预处理和深度分析,以达到企业经营提效的效果。
23052 1
IoT设备数据的存储、解析和价值挖掘实践

热门文章

最新文章