本頁面說明如何設定及使用 Cloud Storage 的 Cloud Pub/Sub 通知。Cloud Pub/Sub 通知可讓您追蹤 Cloud Storage 物件的變更。如要進一步瞭解 Cloud Storage 適用的 Cloud Pub/Sub,請參閱通知概念頁面。
必備條件
使用這項功能之前,您應先具備以下條件:
針對要接收通知的專案啟用 Cloud Pub/Sub API。
針對要監控的值區取得足夠的權限:
如果您擁有包含該值區的專案,代表您非常有可能已經具備必要權限。
如果您使用 IAM,您應具備
storage.buckets.update
權限。相關操作說明請參閱使用 IAM 權限相關頁面。
針對要接收通知的專案取得足夠的權限:
如果您擁有要接收通知的專案,代表您非常有可能已經具備必要權限。
如果您要建立用於接收通知的主題,則必須具備
pubsub.topics.create
權限。無論您要使用新主題或現有主題,都必須具備
pubsub.topics.setIamPolicy
權限。如果您建立主題,通常會具備主題的pubsub.topics.setIamPolicy
。請參閱 Cloud Pub/Sub 存取權控管相關操作說明,瞭解如何取得這些 Cloud Pub/Sub 權限。
-
擁有現有的 Cloud Pub/Sub 主題,可接收您所傳送的通知。
針對與包含 Cloud Storage 值區的專案相關聯的服務帳戶,取得服務帳戶的電子郵件地址。
使用您在上一個步驟取得的電子郵件地址,針對所需的 Cloud Pub/Sub 主題授予服務帳戶 IAM 角色
pubsub.publisher
。
套用通知設定
下列步驟會將通知設定新增至值區,以針對所有支援的事件傳送通知。如要傳送事件子集的通知,請在 gsutil 指令中納入 -e
標記,或在 JSON 要求主體中納入 event_types
金鑰。
gsutil
使用 gsutil notification create
指令,並將 [VALUES_IN_BRACKETS]
替換為適當的值:
gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME]
如果使用的 [TOPIC_NAME]
不在您的專案中,gsutil 會自動建立。
JSON API
- 從 OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
建立含有下列資訊的 .json 檔案,並將
[VALUES_IN_BRACKETS]
替換為適當的值:{ "topic": "projects/[PROJECT_ID]/topics/[TOPIC_NAME]", "payload_format": "JSON_API_V1" }
透過
POST notificationConfigs
要求使用cURL
呼叫 JSON API,並將[VALUES_IN_BRACKETS]
替換成適當的值:curl -X POST --data-binary @[JSON_FILE_NAME].json
-H "Authorization: Bearer [OAUTH2_TOKEN]"
-H "Content-Type: application/json"
"https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"
列出值區的通知設定
如要列出與特定值區相關聯的通知設定:
gsutil
使用 gsutil notification list
指令,並將 [VALUES_IN_BRACKETS]
替換為適當的值:
gsutil notification list gs://[BUCKET_NAME]
JSON API
- 從 OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
透過 {
GET notificationConfigs
要求使用cURL
呼叫 JSON API,並將[VALUES_IN_BRACKETS]
替換成適當的值:curl -X GET
-H "Authorization: Bearer [OAUTH2_TOKEN]"
"https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"
移除通知設定
如要從值區中移除現有的通知設定:
gsutil
使用 gsutil notification delete
指令,並將 [VALUES_IN_BRACKETS]
替換為適當的值:
gsutil notification delete projects/_/buckets/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]
傳送後,系統最多可能需要 30 秒才能停止通知設定所觸發的所有通知。
JSON API
- 從 OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
透過
DELETE notificationConfigs
要求使用cURL
呼叫 JSON API,並將[VALUES_IN_BRACKETS]
替換成適當的值:curl -X DELETE
-H "Authorization: Bearer [OAUTH2_TOKEN]"
"https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]"
傳送後,系統最多可能需要 30 秒才能停止通知設定所觸發的所有通知。
後續步驟
- 進一步瞭解 Cloud Storage 的 Cloud Pub/Sub 通知。
- 在 Pub/Sub 中建立訂閱,以查看 Cloud Storage 傳送的通知。
- 參閱在 GitHub 上輪詢通知的 Python 應用程式範例。
- 建立使用 Cloud Storage 的 Cloud Pub/Sub 通知的相簿。
- 瞭解如何使用 Cloud Pub/Sub 處理長期執行的工作。