12月10日,在2019年民航中南地区智慧机场建设深圳会议期间,深圳机场联手腾讯云打造的“深圳机场”小程序首次面向公众进行成果展示。 作为国内首个根据旅客乘机行程动线精准推荐相应服务的机场小程序,“深圳机场”覆盖出港、进港、中转、接送机四大类出行场景,提供包括室内导航、交通出行、智能客服、行李跟踪等31个子服务,为旅客提供场景化、个性化、智能化的全流程精准服务。
这个智慧机场小程序里,藏着怎样的黑科技呢?
为了提升深圳机场的整体服务效率,腾讯云为深圳机场构建了一套【OneID全流程旅客出行服务系统】。顾名思义,OneID,也就是一个旅客ID,贯穿旅客在机场的出港、进港、中转、接送机四大类出行场景,提供包括室内导航、交通出行、智能客服、行李跟踪等31个子服务。
通过采用OneID旅客数字化身份的技术手段,依托小程序、APP、公众号三端,统一入口,提供机场各环节全流程的旅客便捷服务;后台侧打通各个相关应用系统,统一旅客身份数据,实现旅客行为追踪,并运用大数据和AI技术,为旅客提供场景化、个性化、智能化的全流程精准服务。
此外,【OneID全流程旅客出行服务系统】建立了完善的旅客数据安全保障机制,提供数据加密,授权,认证,审计,脱敏等全生命周期的安全保证手段;旅客数据系统全面符合GDPR等数据安全相关的行业及国际标准规定。
这里讲的快速运营指小程序端可以配合运营需要,快速的迭代产品形态,但众所周知,微信小程序的发版每次都是需要微信平台审核才可以发版的,短则2小时,长则2天不等。
为此,整个小程序上的图标界面表现,基本都是可配置化的,比如行程动态,服务等。目前图标类的服务都是存储在云开发的云存储中,路径保存在云存储里,数据保存在云数据库里,小程序端调用云开发的云函数,云函数去数据库里取出数据返回给小程序端,小程序端展示,并在本地 storage 里做缓存。
一图胜千言,如上图,我们传统的做法就是自己搭建 ES 日志系统,然后自己写客户端上报日志,这里涉及到好多的问题,比如失败重试,性能,对现在服务器压力等都需要考虑,包括 ES 机器的容量大小,一整套玩下来,估计得一周。小程序云开发提供了高级日志方式,在云函数里直接引入wx-server-sdk,然后直接使用如下语句,就可以打印错误和正常日志了。
const objCloud = require(‘wx-server-sdk’);
objCloud.init({env:ENV})
const objLog = objCloud.logger()
objLog.info({}); objLog.error({});
这样就可以打印错误和正常日志了。
日志被打到小程序云开发的日志系统中,我们可以非常方便地在小程序管理控制面板按不同的条件来搜索日志。当前支持结构化的查询日志,深圳机场项目目前也是主要上报这两类重要日志,一类是小程序云调用后台接口时的日志,另一种是小程序端调用云函数的日志,都会最终通过一个云函数 log 把日志上报到小程序云提供的日志系统。 日志上报协议如下:
本项目的缓存主要分为两块,一块是客户端缓存 ,缓存的主要是运营性及小程序界面配置类的数据,这些数据更新周期长,影响效果大。另一块则是应用层调用云数据库的缓存,主要是把数据通过key,value 的方式缓存在内存里。每个云函数固定为10个实例在支撑,每个实例在更新云函数时,才会销毁,从而缓存失效,或是在管理端手动更新缓存校验码实现刷新缓存。
关于缓存的策略及异常设计这里补充几点:
当前云开发的云函数,如果一同步就会直接同步到现网,从而影响到功能,所以我们在开发的时候,就要区分环境来发布。当前我们为云函数创立了三个环境:开发环境,预发布环境,生产环境。预发布环境和生产环境是保持一致,连接的资源都是真实的,只是一个是面向测试,一个是面向广大现网用户。在小程序运行时,会根据全局变量__wxConfig.envVersion 来判断当前是什么环境,从而自动连接相应的小程序云环境。这样避免了一直的更改环境变量,一不小心新加入的开发者把测试环境变量带到了生产环境去,从而引发事故。
管理端主要是实现各种运营数据的管理,包括增删修改查,主要逻辑是管理端引入小程序云 SDK,通过这个 SDK 可以方便快捷的查询云数据库数据,及把云资源发布到小程序云上,修改云数据库数据。
管理端目前功能实现如下:
整个深圳机场项目的应用层都是架构在小程序云开发上,该层承载着脱密,组装,监控,日志,运营逻辑,以及与微信对接的业务逻辑,相比于传统应用层,其响应更快。
此外,借助云开发的serverless框架, 无需部署应用层和 容器, 可以直接进入开发,节省运维人力。并从日志系统搭建、获取用户登录态、手机号等多种应用场景,帮助业务大幅提升开发效率,以获取登录态、获取手机号功为例能从1天缩短到5分钟。日志系统无需自己搭建拿来即用,节省了至少5天人日。
当前我们整个项目总共实现了25个云函数,未来我们将基于云开发实现 更多的业务云函数。
云开发(CloudBase)是一款云端一体化的产品方案 ,采用 serverless 架构,免环境搭建等运维事务 ,支持一云多端,助力快速构建小程序、Web应用、移动应用。
技术文档:https://www.cloudbase.net/
微信搜索:腾讯云云开发,获取项目最新进展
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有