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

news2025/1/10 20:51:20

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

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

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

1

开通自定义函数

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

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

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

2

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

3

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

4

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

5

计费说明

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

  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

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

7

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

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

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

8

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

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

9

6、调用函数

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

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

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

7、检查错误日志

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

10

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

结语

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上美股份在港交所上市:预计全年利润下滑,一叶子收入持续走低

12月22日,上海上美化妆品股份有限公司(HK:02145,下称“上美股份”)在港交所上市。本次上市,上美股份的发行价格为25.20港元/股,为此前发行区间的最低值。据此计算,上美股份的募资总额约为9.31亿…

CDH6.3.2集成Apache Atlas2.1.0

1 环境准备 1.1 CDH6.3.2 环境搭建 参考文档如下 Cloudera Manager安装CDH6教程-(一)虚拟环境安装配置 Cloudera Manager安装CDH6教程-(二)搭建Cloudera和CDH6 CM和CDH在安装的时候遇到的问题 CDH6.3.2 各组件版本 1.2 apa…

火爆“有机新消费”驶入酱油赛道 好记打造我国有机酱油行业领导品牌

根据观研报告网发布的《2022年中国有机酱油市场分析报告-市场竞争策略与发展动向前瞻》显示,有机酱油是指采用有机农作物为原料酿制的酱油。有机酱油含有浓郁的酱香和脂香,是一种不可多得的上等调味品,适合于蘸食,红烧&#xff0c…

以技术创新践行社会责任,欧科云链斩获界面新闻年度双项大奖

12月20日,欧科云链凭借在区块链技术领域的创新,与腾讯、宁德时代和埃森哲等各领域领先企业一同荣获“2022好公司行业领先大奖”。 12月21日,欧科云链以区块链科技之力积极践行社会责任,绽放商业向善的力量,与茅台、蚂蚁…

华为云Stack智能进化,三大举措赋能政企深度用云

【中国,深圳,2022年12月22日】今天,以“政企深度用云,释放数字生产力”为主题的华为云Stack战略暨新品发布会在线上举办,华为云围绕“让技术不难用、让场景变简单、让经验可复制”提出三大关键举措赋能政企迈向深度用云…

无线鼠标怎么连接电脑?2个方法,轻松学会

现在越来越多的小伙伴都喜欢使用无线鼠标。相比于有线鼠标,无线鼠标方便快捷,不会受到USB线的束缚。可是很多小伙伴买回无线鼠标,第一次使用的时候,却发现自己不知道怎么使用。无线鼠标怎么连接电脑?今天小编给大家带来…

对于转行Pyhon程序员,这些是我们需要知道的事情..

不知道从什么时候开始,我们焦虑当下,担心未来,踌躇和迷茫甚至痛苦成为我们的“生活伴侣”。 我无法定义这是好是坏,但我知道这肯定很难受。于是乎总很多人想寻得一个答案,希望可以抹平心中的波澜。而往往事与愿违。 …

口罩后,那些被“优化”的程序员都去哪儿了?

程序员在35岁真的会被裁吗? 被裁之后去哪儿工作 ,怎么办啊? 在很多社交平台,经常能看到不少小伙伴问出这样的问题,既迷茫,又慌张。有人说自己25岁就已经被裁了,也有人说做程序员,3…

江苏移动MGV3000-YS(S)/YS(M)-S905L3卡刷和线刷固件包

江苏移动MGV3000-YS(S)/YS(M)-S905L3卡刷和线刷固件包 固件特点: 1、修改dns,三网通用; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、无开机广告,无系统更新,不在被强制升级&#xff1b…

数据结构与算法java实战篇--链表

目录 一.链结点 二.单链表 1.单链表的插入方法insertFirst() 2.单链表的删除方法deleteFirst() 3.链表显示displayList() 4.单链表代码: 三. 查找和删除指定链结点 四.双端链表 五.用链表实现的栈 六.用链表实现队列 七.有序链表 八.双向链表 1.遍历 2.插入…

“量子深度学习的春天是否已来?” | CNCC论坛分享

2022年12月8日举办的CNCC2022“量子深度学习的春天是否已来?”技术论坛,从学术、技术和产业的角度出发,深入探讨未来5到10年深度学习发展在算力方面的瓶颈问题、量子深度学习会给AI领域带来何种演变以及量子深度学习的技术落地是否依然久远等…

代码随想录Day58|739. 每日温度、496.下一个更大元素 I

文章目录739.每日温度496.下一个更大元素 I739.每日温度 文章讲解:代码随想录 (programmercarl.com) 题目链接:739. 每日温度 - 力扣(LeetCode) 题目: 请根据每日 气温 列表,重新生成一个列表。对应位置…

weidl x DeepRec:热门微博推荐框架性能提升实战

微博推荐团队:陈雨、韩楠、蔡小娟、高家华 1.项目背景 热门微博是新浪微博的重要功能之一,包含热门流、热点流、频道流、小视频后推荐、视频社区等场景。 标推荐首页 发现页推荐 沉浸视频题weidl机器学习框架为热门微博在线学习提供模型训练和推理服务…

【问题记录与解决】ModuleNotFoundError: No module named ‘pymongo‘ 并测试代码

目录 一、问题记录二、解决方法一(不一定好使)三、法二(亲测可以使用)四、安装 pymongo 的目的一、问题记录 报错内容是缺少对应的模块, ModuleNotFoundError: No module named pymongo… 二、解决方法一(不一定好使) 直接在PyCharm中下载 pymongo模块即可。 但是这…

试卷安全分发系统

摘要 高校教务管理过程中,试卷以明文形式传输和集中存储,存在数据泄漏安全隐患。现提出了一个基于数字证书的试卷防泄漏方案,采用算法加密试卷,试卷在传输过程中中以密文的形式传输,每次传输的时候都会对试卷进行签名…

CadQuery二维Sketch教程

2D草图是3D CAD的基础。本文介绍如何在CadQuery中使用不同的方法构建二维草图(Sketch)。 1、基于面的 API 构建2D草图的主要方法是基于构建面并使用布尔运算将它们组合起来。 import cadquery as cqresult (cq.Sketch().trapezoid(4,3,90).vertices…

【GO】 K8s 管理系统项目[API部分--StatefulSet]

K8s 管理系统项目[API部分–StatefulSet] 1. 接口实现 service/dataselector.go // statefulSetCell type statefulSetCell appsv1.StatefulSetfunc(s statefulSetCell) GetCreation() time.Time {return s.CreationTimestamp.Time }func(s statefulSetCell) GetName() stri…

河道水文标尺监测系统 OpenCv

河道水文标尺监测系统借助PythonOpenCv深度学习架构模型对江河湖泊进行全天候不间断实时检测,当PythonOpenCv深度学习架构模型监测到水位异常时,立即抓拍存档告警,同步告警截图和视频推送给相关人员。OpenCV的全称是Open Source Computer Vis…

JUC之ABA问题

什么是ABA问题? ABA问题是由CAS而导致的一个问题 CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并交换,那么在这个时间差内会导致数据的变化。 比如说一个线程一从内存位置V中取出A,这是另一个线程二也从内存中取出…

从注解入手理解springboot原理

一、理解注解 1、注解是什么? 注解可以理解为一个标记或者标签,范围可以是类、方法、属性。 2、自定义一个注解,进行理解spring的自动装配。 自定义自己的注解:JDK官方提供提供了一些基础元注解,就是标记注解的注解…