云原生社区 > Serverless > 正文

急速上线 Serverless 钉钉机器人“防疫精灵”

简介: 新型冠状病毒疫情肆虐的春节期间,IoT 事业部的几位同学使用 IoTStudio 快速搭建出钉钉机器人“防疫精灵”。“防疫精灵”上线后访问量攀升,一共服务了数十万个钉钉群。由于“防疫精灵”的后端运行在阿里云函数计算之上,Serverless 化的后端架构,让该机器人顺利地抗住了访问量的暴增,为抗疫工作贡献了技术人的一份绵薄之力。
+关注继续查看

han1.jpg

新型冠状病毒疫情肆虐的春节,大家都过得人心惶惶,作为被关在家的程序狗,总觉得要做点什么。于是阿里云 IoT 事业部的几个同学就开始了防疫精灵的开发之路。

从点子到防疫宝,只花了一个下午时间;从防疫宝到钉钉全域机器人防疫精灵,只花了 1.5 天时间完成开发,3 天灰度、全量,发布 1 天半就突破 1 万个群添加使用,即插即用,疫情实况、常见问题、健康打卡全都有:

如此紧急,toC海量客户,如何快速开发又不失稳定、安全呢?

快速搭建

天下武功唯快不破,怎么快?靠工具!
IoT Studio是阿里云 IoT 向物联网开发者提供的应用开发工具,包括了可视化、逻辑编排、数据分析三大能力。该工具开发的应用实例运行于阿里云函数计算(FunctionCompute 简称 FC)之上,应用 serverless 化,以达到按量伸缩和免运维的效果。

机器人添加

原理:钉钉全域机器人添加/删除/更新时,会自动推送HTTP事件
搭建:

1.使用HTTP流来提供钉钉事件回调
2.使用路径选择节点,根据事件类型分流到对应的处理逻辑
3.使用 Node 脚本进行数据预处理,包括数据格式、敏感字段脱敏或加签等
4.存入数据库

聊天消息通路

原理:基本同上,at机器人的消息将发送到回调接口,转发 NLP 接口
搭建:
1.使用 HTTP 流来提供钉钉消息回调
2.使用 Node 脚本节点(此处可用 API 请求节点,但因为稳定性要求改用 Node 脚本来,详见下文优化部分)

批量群推送

原理:每天 9 时、17 时定时推送最新疫情实况和打卡、咨询快捷链接
搭建:
// 触发
1.使用定时节点,设置每日触发
2.使用项目内API节点,调用同项目内的批量发送服务

// 发送
3.使用 HTTP 节点搭建发送入口
4.使用 Node.js 脚本节点拼装消息发送的内容
5.使用 Node.js 脚本节点查询数据库的webhook信息并解签(此处后续会优化数据库节点,无需写脚本)
6.使用 Node.js 脚本节点,批量发送消息给钉钉的 OpenAPI 接口(此处是关键点,容量评估、并发、流控、异常处理都在此处)

疫情可视化

原理:使用可视化工具,利用库中的疫情数据,展示实况、趋势图,借助函数计算部署 puppeteer 服务定时截图
搭建:

  1. 使用文字组件,配置数据源(业务逻辑编排接口,类似上文搭建方式,不赘述),使用过滤器选定展示字段
  2. 使用折线图组件,配置数据源、数据系列。
  3. 使用函数计算部署 puppeteer 截图任务,详见:Serverless 实战 —— 快速开发一个分布式 Puppeteer 网页截图服务

架构梳理

小结

  1. 好用的工具是绝对的生产力。 IoT Studio 拉近了想法和实现的距离,通过快速模板化,1 天搭建原型,1 天完成了 V1 版本。
  2. Serverless 为后端的高并发、高可用保驾护航。由于疫情的发展,“防疫精灵”的访问量很快就大幅度提升,而且是非常典型的访问量峰谷类业务。Serverless 的按量付费和急速弹性(百毫秒级别)省去了业务量增长而引入的架构升级的工作。此外函数计算的快速部署和低运维特性,也让开发迭代得更快,对系统的监控度感知更容易。

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
继续集成jenkins+allure+pytest+python邮件发送(报告截图selenium实现)+python钉钉机器人通知
继续集成jenkins+allure+pytest+python邮件发送(报告截图selenium实现)+python钉钉机器人通知
26 0
把盏言欢,款款而谈,ChatGPT结合钉钉机器人(outgoing回调)打造人工智能群聊/单聊场景,基于Python3.10
就像黑火药时代里突然诞生的核弹一样,OpenAI的ChatGPT语言模型的横空出世,是人工智能技术发展史上的一个重要里程碑。这是一款无与伦比、超凡绝伦的模型,能够进行自然语言推理和对话,并且具有出色的语言生成能力。
42126 0
GrayLog+nxlog采集邮箱登录日志csv文件并实现邮箱异地登录钉钉机器人告警
GrayLog+nxlog采集邮箱登录日志csv文件并实现邮箱异地登录钉钉机器人告警
107 0
利用GrayLog告警功能实现钉钉群机器人定时工作提醒
利用GrayLog告警功能实现钉钉群机器人定时工作提醒
114 0
商业堡垒机对接GrayLog实现生产服务器高危命令钉钉机器人自动告警
商业堡垒机对接GrayLog实现生产服务器高危命令钉钉机器人自动告警
157 0
钉钉/企业微信机器人:“Github触发器”与“Issue机器人”
众所周知,在Serverless领域中,触发器是FaaS必不可少的一部分;一个FaaS平台,他的触发器数量、质量以及类型,很可能会决定这个FaaS平台是否能成为“主流”平台;因为触发器不仅仅是一种功能的体现,更是解决普遍性业务诉求的一个重要途径;目前来看,各个云厂商所提供的触发器基本上都会包括API网关触发器、对象存储触发器、时间触发器等,当然也有厂商提供一定的消息触发器、日志触发器、甚至是一些SQL相关的触发器、CDN触发器等,那么在我们的实际生产生活中,这些表面上看起来“很基础”的触发器,是否可以升级成为一个有趣的“高级触发器”呢?
236 0
如何打造一个能自动回复的钉钉机器人
如何打造一个能自动回复的钉钉机器人
865 0
基于钉钉机器人二次开发的系统告警消息通知业务模块
基于钉钉机器人二次开发的系统告警消息通知业务模块
258 0
使用钉钉机器人监控DataWorks/消息队列Kakfa/实时计算Flink任务
我们写的数仓任务、Flink任务提交任务缺少对任务运行情况监控报警,这里可以使用钉钉自带的机器人实现钉钉群任务告警功能
559 0
python之钉钉机器人自动发消息——傻瓜式教程
自动化跑完的结果,需要自动发送到钉钉群,自动将数据、报告、截图等保存至公司内部服务器,钉钉通知的时候,需要有个链接,点击就可以跳转。
845 0
Serverless
+关注
快速交付实现商业价值。
热门文章
热门讨论
+关注
阿里云云原生小助手
技术工作者
文章
问答
视频
相关电子书
更多
使命必达 —— 钉钉企业级 消息服务的机遇与挑战
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载