現在慢慢很多的雲服務都希望是能夠真有需要觸發條件才去做動作,除了不用大量等待的時間外也更是節省成本,這類應用很適合給要大量傳輸而且無須受到排程時間綁定的資料來做執行.
而GCP剛好就有這類服務涵蓋了低延遲還有高擴充特性的推送外,並且還支援有多對多非同步的訊息資料來做傳送.
沒錯中間服務就是本次的主角Cloud Pub/Sub,從左邊能支援Input的資料服務類型經過Pub/Sub後在Output到右方
運作模式為推播者可以新增一個主題如Garytopic,對此主題擁有一個或多個訂閱者來對應此Garytopic,而推播者就可以傳送訊息或資料給指定的主題如就叫Garytopic,而對應到的訂閱就會把資料或是訊息傳給訂閱者。如下圖所示:
有了基本觀念我們就來簡單做示範吧!
就是它發佈/訂閱Cloud Pub/Sub服務選到主題
來新建一下主題
完整的路徑都是預設只要取最後/主題名稱就好
OK,設定好了,不過還沒有剛剛說了老半天的訂閱者
建立一個訂閱者Tom,並透過自行提取資料的方式,後面的保留時間10-600s自行決定,時間期限到了就會移除你所發佈的訊息資料,自行決定
OK,建立訂閱者完成
選到剛剛建立的主題來發佈一下訊息
自訂訊息內容後就傳送
OK,這時候要開啟gcloud shell
gcloud pubsub subscriptions pull --auto-ack tom(你自己的訂閱者名稱)
就可以看到剛剛除送過來的訊息內容了
這次我們在試試從Cloud Storage匯入看看
OK,匯入的過程需要透過Dataflow服務來轉換csv-->text
我就用最近一次的帳單csv來作為匯入的範例
範本有很多,來源就是從GCS text(Storage)到Pub/Sub,中間的Input / Output記得路徑打對,還有一個暫存快取的位置我另建了一個Bucket/folder作為此暫存區
如果都沒有問題就會開始執行整個流程
OK,已經建立完成
知道我為何前面一直強調輸出入的路徑嗎!有看到紅色失敗..就是耍笨的代價
OK,訂閱者在手動撈取一次就看到了剛剛丟過來的訊息....2018-10-28XXXX
好了,今天的示範就先到這裡結束,各位看到這辛苦的大大們再會啦!881