热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我们能用云函数做什么?

前言本文以Firebase为例,因为腾讯云的云函数正在内测,还没申请到。:)现如今云计算时代渐渐出现了越来越多的新型模式,从IaaS:Infrastructure-as-a-Service(基础设施

前言

本文以Firebase为例,因为腾讯云的云函数正在内测,还没申请到。:)

现如今云计算时代渐渐出现了越来越多的新型模式,从

IaaS: Infrastructure-as-a-Service(基础设施即服务)

PaaS: Platform-as-a-Service(平台即服务)

SaaS: Software-as-a-Service(软件即服务)

到CaaS:Containers as a Service(容器云)

再到的微服务架构,都在试着将各种软、硬件资源或抽象的事物做为一种服务提供给开发者使用,让开发者不再担心基础设施、资源需求、中间件等等,在减轻心智负担的同时更好地专注于业务。

FaaS是Functions as a Service(函数即服务)的简称,它往往和无服务架构(Serverless Architecture)一同被提起。

正文

腾讯云的SCF

无服务器云函数(Serverless Cloud Function)是腾讯云提供的无服务器(serverless)执行环境,您无需购买和管理服务器,而只需使用平台支持的语言编写核心代码并设置代码运行的条件,代码即可在腾讯云基础设施上弹性、安全地运行。腾讯云完全管理底层计算资源,包括服务器 CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡等。代码按需运行,空闲时不收费。使用无服务器云函数将帮您免除所有运维性操作,使您更加专注于核心业务的开发,实现快速上线和迭代,把握业务发展的黄金时期。

Firebase

云函数使开发人员能够访问Firebase和Google Cloud的一些事件,以及可扩展的计算来运行代码以响应处理这些事件。 Firebase以独特的方式使用云函数来满足其独特需求,典型运用的领域:

  1. 当发生了一些新奇有趣的事情通知用户

  2. 执行实时的数据库清理和维护

  3. 在云上执行密集的任务,而不是在本地的应用程序上

  4. 与第三方的服务和API集成

下面就进行一一说明。

一、当发生了一些新奇有趣的事情通知用户

开发人员可以使用云函数来保持与用户之间的联系和获取最新的有关应用程序的相关信息。

比如,在一些社交网站或应用上(如微博)。 在这样的程序中,由实时数据库触发的写入功能以存储新的关注者可以创建Firebase的云消息通知,让用户知道他们的粉丝数又增加了。

下面是它的工作原理图:

  1. 该函数在对实时的数据库路径写入了相关信息,存储粉丝

  2. 该函数通过向FCM(Google的推送服务)发送消息

  3. FCM向用户的设备发送通知消息

YingJoy

其它通知的用例

  1. 向订阅/取消订阅的用户发送确认电子邮件

  2. 用户完成注册后发送欢迎邮件

  3. 当用户创建新帐户时发送短信确认

等等

二、实时进行数据库的清理和维护

使用云函数数据库处理事件,可以根据用户行为修改实时数据库,保持系统的更新和清洁。 例如,在基于实时数据库的聊天室应用程序中,您可以监视写入的事件,并从用户的消息中擦除一些带有敏感词或不恰当的文本。 下面是它的工作原理图:

  1. 函数的数据库事件处理程序监听特定路径上的写入事件,并检索所有聊天消息的事件。

  2. 该函数处理文本以检测和擦除敏感词或不恰当的语言。

  3. 该函数将更新的文本重新写回数据库。

YingJoy

其他实时数据库清理和维护用例

  1. 从实时数据库中清除已删除用户的账户信息

  2. 限制数据库中的子节点数

  3. 跟踪实时数据库列表中的元素数量

  4. 将文本转换为表情符号

  5. 管理数据库记录的计算元数据

三、在云上执行密集的任务,而不是在本地的应用程序上

开发人员可以利用云端功能将云资源密集型工作(要耗费繁重的CPU资源或网络资源)将运行的实际情况传送到在用户设备上。 例如,您可以编写一个函数来监听图像上传到Storage(谷歌的一个存储图像的程序)中,将图片的映像下载到运行该功能的实例,修改它并将其上传回页面中。 修改包括调整图片大小,裁剪或转换图像。利用ImageMagick命令行工具,与云功能一起使用,使其工作变得更加简单容易。

下面是它的工作原理图:

  1. 当图像上传到Storage的时候,该函数会被触发

  2. 该函数下载该图像的并创建它的缩略图

  3. 该函数将此缩略图的位置写入数据库,这样客户端程序就可以使用它

  4. 该函数将缩略图上传到新的存储位置

YingJoy

其他在云上执行密集的任务,而不是在本地的应用程序上用例

1.定期删除未使用的帐户

2.自动和上传的图像

3.向用户发送批量电子邮件

4.定期汇总数据

5.处理待处理的工作队列

四、与第三方的服务和API集成

云函数可以通过调用和公开服务或API来使你的应用程序可以更好地与其他服务配合工作。 例如,用于开发团队的应用程序可以将GitHub提交到开发团队的聊天室。

下面是它的工作原理图:

  1. 当有人提交给GitHub,通过GitHub的webhook API触发HTTPS功能。

  2. 该函数将提供一个Team Slack API 来发送提交的通知。

  3. 然后把消息发送给团队的聊天室中

    YingJoy

    其他与第三方的服务和API集成用例

    1. 使用Google的Cloud Vision API分析和标记上传的图像。

    2. 使用Google翻译邮件

    3. 使用LinkedIn或Instagram身份验证服务

    4. 向实时数据库写入webhook的发送请求

    5. 实时数据库元素的全库搜索

    6. 创建自动回复电话和短信

    7. 使用Google助手创建聊天机器人

再回头看腾讯云提供的SCF

这里仅仅讨论它的应用场景

Ⅰ、实时文件处理

视频应用、社交应用等场景下,用户上传的图片、音视频的总量大频率高,对移动应用的实时性和并发能力都有较高的要求。例如:使用多个云函数对上传的视频短片进行转码,分别对应不同的清晰度(1080p、720p 等),以满足不同场景下用户的需求,适应移动网络带宽较小且不稳定的特性。

  1. 先由客户端上传视频至云对象存储COS

  2. 然后通过自动触发云函数对视频进行处理(不同清晰度的转码)

  3. 然后将转码后的视频重新上传至云对象存储COS

  4. 最后再发送给用户

其中视频文件始终在COS上

Ⅱ、数据ELT处理

一些数据处理系统中,常常需要周期性/计划性地处理庞大的数据量。例如:证券公司每12小时统计一次该时段的交易情况并整理出该时段交易量 top 5,每天处理一遍秒杀网站的交易流日志获取因售罄而导致的错误从而分析商品热度和趋势等。

此时,腾讯云无服务器云函数 SCF 近乎无限扩容的能力可以使您轻松地进行大容量数据的计算。在下图所示的例子中,SCF 可以对源数据并发执行多个 mapper 函数,在短时间内完成工作,相比传统的工作方式,更能避免资源的闲置浪费而节省资金。

类似于上面的在云上执行密集的任务,而不是在本地的应用程序上

  1. 将存储在云对象存储COS的文件通过Map云函数进行文件映射

  2. 将映射出来的许多小文件分别通过云函数处理

  3. 然后将处理后的文件存储至云数据库中(使得Map更加持久化)

  4. 然后通过Reduce函数将文件整合

  5. 最后会重新把这个新得到的存储到COS中

Ⅲ、移动及Web应用后端

无服务器云函数和其他腾讯云云服务紧密结合,开发者能够构建可弹性扩展并在多个数据中心高可用运行的移动或 Web 应用程序 – 轻松创建丰富的无服务器后端,无需在可扩展性、备份冗余方面执行任何管理工作。

  1. 用户授权登陆(OAuth)利用云函数进行验证(上面的与第三方服务或API集成)

  2. 浏览商品,商品信息存储在云对象存储COS上

  3. 云函数处理用户的下单(历史数据或刚刚下的单)来对用户进行产品推荐

其中:
1.使用 COS 托管静态网站,构建商品明细模块;

2.使用 无服务器云函数 构建登录模块,可以直接复用 OAuth 的授权登录逻辑;

3.使用 无服务器云函数 构建订单模块,在用户调用下单相关接口时触发增删订单等函数;

4.同时使用 无服务器云函数 支持个性化模块,根据用户的订单信息生成个性化数据并返回给客户端。

原文出自腾讯云技术社区
原文链接https://www.qcloud.com/community/article/370475


推荐阅读
  • 基于Dubbo与Zipkin的微服务调用链路监控解决方案
    本文提出了一种基于Dubbo与Zipkin的微服务调用链路监控解决方案。通过抽象配置层,支持HTTP和Kafka两种数据上报方式,实现了灵活且高效的调用链路追踪。该方案不仅提升了系统的可维护性和扩展性,还为故障排查提供了强大的支持。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 成都服务器租赁适用于哪些网站业务部署——Vecloud专业解析
    成都,作为四川省的省会,不仅是西南地区唯一的副省级城市,也是国家重要的高新技术产业基地和商贸物流中心。Vecloud专业解析指出,成都服务器租赁服务特别适合各类网站业务的部署,尤其是需要高效、稳定和安全的在线应用。无论是电子商务平台、内容管理系统还是大数据分析,成都的服务器租赁都能提供强大的支持,满足不同企业的需求。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 近期,针对Axis2默认凭据漏洞的攻击案例在安全社区引起了广泛关注。这些攻击通常利用Axis2的默认用户名和密码进行渗透测试,技术手段相对固定。本文在综合分析多个案例的基础上,详细探讨了该漏洞的安全风险,并提出了有效的防范措施,以帮助企业和开发者加强Web服务的安全防护。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文深入解析了Linux系统中常用的文件和目录操作命令,包括但不限于`ls`、`cd`等。通过详细讲解每个命令的功能、语法及应用场景,帮助读者掌握这些基本工具的使用方法,提升在Linux环境下的操作效率。此外,文章还介绍了如何结合选项和参数来实现更复杂的文件管理任务,为初学者提供了丰富的实践示例和技巧。 ... [详细]
  • 双因子安全机制与WiFi万能钥匙的较量:解析其背后的对抗策略
    几乎所有智能手机用户都熟悉类似“WiFi万能钥匙”的应用程序。这款应用凭借庞大的下载量,不仅在各大应用商店中占据显著位置,还长期稳居下载排行榜前列。然而,随着双因子认证等高级安全机制的普及,这类应用面临着前所未有的挑战。本文将深入探讨双因子安全机制与WiFi万能钥匙之间的对抗策略,分析其背后的技术原理和安全风险。 ... [详细]
author-avatar
572370080_8f9421
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有