[Day16] Functions

Cloud Function 是一款 Serverless 的服务,使用者不需要管理服务器。Google 官方说,它是一种 FaaS (Function as a Services,函式即服务),它可以透过透过 HTTP 的 API 来基於事件做出相对应的动作。在 AWS 上,最相似的功能是 Lambda。

目前 Cloud Functions 是透过 Node.js 的 JavaScript 进行编写,并运行在 GCP 中。

Cloud Functions 最主要可以区分成两个重点 Event (事件) 与 Trigger (触发),Event 可以是 HTTP 的 Webhook,Cloud Storage、Cloud Pub/Sub 、 Cloud FireStore 等方式,我们可以收取、订阅指定的 Event,并设定当 Event 发生後,需要做的事情 (Trigger) 是什麽。

举例来说,我们如果希望透过 Cloud Storage 建立一个线上的相簿,而相簿通常除了完整尺寸的原图之外,为了减缓频宽、加快载入速度,通常会采用缩图预览的格式。我们就可以透过 Cloud Functions 来建立一个 Event ,设计为 「当 Cloud Storage 上传了新的图片」,则触发 Trigger 「透过 Function 自动产出一张压缩尺寸後的缩图,存放进 Cloud Storage 中」。

除了收送 Storage 的内容之外,也可以藉由 Webhook 整合其他的服务,例如串接 Cloud Vision API 做影像辨识;自动推播讯息,做为行动装置的後端等。

FaaS 最大的特性是 无状态 (Stateless),每一次触发脚本的请求都是独立、互相不会干扰的,以前面的例子为例,这个脚本就只负责做当前这张缩小图片的功能,并回传到 Storage 中,不会去考虑先前储存的状态。

透过 FaaS 可以提高开发的效率,专注於开发单一的功能,并只在需要用到该功能时付钱即可。但 FaaS 最大的缺点是,容易产生程序功能的碎片化,进而导致不方便统整的管理。


<<:  [Day16] THM Tomghost

>>:  企业资料通讯 Week2 (讲到Circuit Switching v.s Packet Switching)

10 - Metrics - 观察系统的健康指标 (4/6) - 使用 Metricbeat 掌握 Infrastructure 的健康状态 Docker 篇

Metrics - 观察系统的健康指标 系列文章 (1/6) - Metrics 与 Metricb...

DAY4 LINE Bot应用程序设定

开启专案主程序下的settings.py档案,增加LINE Developers上所取得的两个凭证设...

Day 11 - 那个很常用到的 useEffect

如果有错误,欢迎留言指教~ Q_Q 先说说什麽是 side effect ? 就是不在主要的程序执...

[ Day 10 ] setState() 的用法

上篇 Day 09 跟大家介绍了 State 为何?所以今天就要来看看如何利用 setState(...

ASP.NET MVC 从入门到放弃(Day29)-MVC 实作一个web api

在前一天我有提到如何将Web Api 加入 Swagger 今天就来实作一个会员查询资料的POST ...