[Day28] 透过GCP实作(4/4):透过Scheduler与Pub/Sub使抓取资料自动化

基於昨日文章的说明,
我们已经建立了一个资料库协助我们暂存资料资料
但缺乏驱动负责拉取与上传资料的Function之机制,
在本日的文章,会简单讲述你可以如何借助GCP的服务来完成这个需求

架构图

pic-1

Cloud Pub/Sub


这是一项Google的资讯传递服务,
我们可以透过它,向负责抓取资料并上传资料到资料库的Cloud Function传递资讯并为我们工作!
img-1

运作方式

  1. Publisher 首先在 Cloud Pub/Sub 建立传讯息用的 Topic,然後开始向该 Topic 传送讯息
  2. 当讯息被接收前或尚未收到 Acknowledge(Ack) 时,会被保存起来并等待在次传送出去
  3. Subscriber 向服务注册订阅(Subscription)後,所有发送到 Topic 的讯息会转发给该 Topic 下的所有 Subscriber
  4. Subscriber 收到讯息後会回传 Ack 讯息给 Cloud Pub/Sub,以确认讯息已经收到
  5. 当 Ack 被 Cloud Pub/Sub 收到後,将该讯息自 Message Storage 删除

Cloud Scheduler

img-2
这是一项Google推出的全代管的企业级 Cron 工作排程器。
我们可以透过它替我们的Function执行进行排程,
藉由这项操作,Function将会在我们指定的时间点被唤醒并执行我们事先撰写好的程序码!

Cloud Pub/Sub 与 Cloud Scheduler 如何被运用在我们的专案中?

从最上方的架构图中,我们可以略知一二。
为了达成自动定时触发Function的效果,我们需要:

  1. 在Pub/Sub建立一个主题
  2. 在目标的Cloud Function订阅甫建立的主题(Topic)
  3. 藉由Cloud Scheduler定时向Pub/Sub触发这个主题(Topic)
  4. Function接收到Pub/Sub传递过来的讯息,开始执行事先撰写好的程序码

详细教学可以参阅下方的官方文件:

例如

使用来自环保署提供之OPEN API获取空气品质资讯,
并筛选所需资料备份到Firebase RealTime Database
以索引空气品质资讯为主要功能的Action

下一步...

现在,Cloud Function会依据你设定的时间进行资料拉取及上传至资料库的动作了
到这里,GCP的架构设计到此告一段落!
接下来将会提供一点建议,
进而精进及扩大你的Action之使用者范围!

参考资料


<<:  Progressive Web App Audits (15)

>>:  # Day13--你到底爱不爱我?我们来解包这个Optional

D15-(9/15)-南亚(1303)-也是存股好选择的台塑四宝

注:发文日和截图的日期不一定是同一天,所以价格计算上和当日不同,是很正常的。 声明:这一系列文章并无...

工欲善其事,必先利其器

开始IaC之前,必先做好前置作业 昨天介绍了一些AWS建置环境的方法,今天会先做CloudForma...

Day 5: LeetCode 88. Merge Sorted Array

Tag:随意刷-[50-100] LeetCode Problem Source: 88. Merg...

Day5-"台风天还是要练习吧"

今天先练习第一天到第三天所学的东西,while跟do-while明天再详细说明。 利用printf印...

D13 - 「类比×电压×输入」

接下来我们开始建立「类比输入视窗」。 何谓类比讯号 和数位讯号只有 0 与 1 两种状态不同,类比讯...