GCS Notification 功能實作 (三):應用於 Cloud Pub/Sub
什麼是 Cloud Pub/Sub?
是一款低延遲、高擴充性的推送服務,它支援多對多、非同步的訊息/資料傳送。
它是如何運作的?
推播者新增一個 topic,然後再新增一個或多個 subscription 去對應到這個 topic。推播者會傳送訊息/資料給指定的topic,對應到的subscription 就會把訊息/資料傳送給訂閱者。如下圖:
簡介
• Topic: 哪個publisher 傳送的訊息
• Subscription: 定義資料來自哪個topic以及最終要傳送的 subscribers
• Message: 包括資料以及optional的資料,最後要傳給 subscribers
• Message Attribute: 一個讓publisher 可以定義訊息的key-value pair。
服務特點
• 確保資料必定至少送達一次
• 適合傳輸大量且沒有時間排序的資料
Notification configurations
連結使用者bucket的設定,包括:
• Pub/Sub中接收資訊的Topic
• 發出通知的觸發事件(每個事件可以設定最多10個規定)
• 通知的內容
事件類型
事件類型 | 敘述 |
OBJECT_FINALIZE | 新增、修改Object成功,如果上傳失敗則不會觸發 |
OBJECT_METADATAUPDATE | 修改現有的Metadata Object成功 |
OBJECT_DELETE | 刪除Object成功,包括改寫Object。如果Object versioning啟動時不會被觸發 |
OBJECT_ARCHIVE | 只有在Object versioning啟動時才會被觸發,當有Object被修改時,bucket會自動Archive一個紀錄 |
如何設置
接下來的步驟會示範如何設定 Cloud Pub/Sub for Cloud Storage。
1. 先至 API & Services 啟用 Cloud Pub/Sub API
2. 確認欲監控的 bucket 及用來接收的 project 都有足夠的權限
3. 新增一個通知設定
$ gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME]
4. 條列所有通知設定
$ gsutil notification list gs://[BUCKET_NAME]
5. 移除一個通知設定
$ gsutil notification delete projects/_/buckets/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]
參考文章
Cloud Pub/Sub Notifications for Cloud Storage