本頁說明如何設定 bucket,將物件變更通知傳送至 Pub/Sub 主題。如要瞭解如何訂閱接收通知的 Pub/Sub 主題,請參閱「選擇訂閱類型」。
事前準備
使用這項功能前,請先完成下列操作。
啟用 Pub/Sub API
針對要接收通知的專案啟用 Pub/Sub API。
取得必要角色
如要取得設定及查看 bucket Pub/Sub 通知所需的權限,請要求管理員授予下列角色。這些預先定義的角色具備設定及查看 Pub/Sub 通知所需的權限。
您要設定 Pub/Sub 通知的 bucket 的「Storage 管理員」角色 (
roles/storage.admin
)您要在其中接收 Pub/Sub 通知的專案,必須具備 Pub/Sub 管理員 (
roles/pubsub.admin
) 角色
如需如何授予值區角色,請參閱「將 IAM 與值區搭配使用」。如要瞭解如何授予專案角色,以及設定主題和訂閱項目的存取權控管,請參閱「控管存取權」一文。
確認您有現有的 Pub/Sub 主題
如果尚未建立要傳送通知的 Pub/Sub 主題,請先建立主題。如果您打算使用 Google Cloud CLI 或 Terraform 執行本頁的操作說明,則不需要執行這個步驟。
將必要角色授予專案的服務代理
如果您打算使用 Google Cloud CLI 或 Terraform 執行本頁的指示,則不需要執行下列步驟。
針對與包含 Cloud Storage 值區的專案相關聯的服務代理,取得服務代理的電子郵件地址。
針對相關 Pub/Sub 主題,授予服務代理人 Pub/Sub 發布者 (
roles/pubsub.publisher
) 角色。如要瞭解如何授予主題角色,請參閱「控管存取權」一文。
套用通知設定
下列步驟會將通知設定新增至值區,以針對所有支援的事件傳送通知。
控制台
您無法使用Google Cloud 控制台管理 Pub/Sub 通知。請改用 gcloud CLI 或其中一個可用的用戶端程式庫。
指令列
使用 gcloud storage buckets notifications create
指令:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
其中:
BUCKET_NAME
是相關值區的名稱。例如:my-bucket
。TOPIC_NAME
是要傳送通知的 Pub/Sub 主題。如果您指定的專案中沒有該主題,指令會為您建立一個。
如要傳送事件子集的通知,請納入 --event-types
標記。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
如要使用 PHP 為 bucket 建立通知設定,請參閱 Google Cloud Client Library 參考說明文件。Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Terraform
您可以使用 Terraform 資源,將通知設定新增至 bucket。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
其中:
PROJECT_ID
是與您要傳送通知的 Pub/Sub 主題相關聯的專案 ID。例如:my-pet-project
。TOPIC_NAME
是要傳送通知的 Pub/Sub 主題。例如:my-topic
。
使用
cURL
來透過POST notificationConfigs
要求呼叫呼叫 JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
其中:
JSON_FILE_NAME
是您在步驟 2 建立的檔案路徑。BUCKET_NAME
是您要產生通知的值區名稱。例如:my-bucket
。
XML API
您無法使用 XML API 管理 Pub/Sub 通知。
取得通知設定
如要取得與值區相關聯的特定通知設定,請完成下列步驟:
控制台
您無法使用Google Cloud 控制台管理 Pub/Sub 通知。請改用 Google Cloud CLI 或其中一個可用的用戶端程式庫。
指令列
使用 gcloud storage buckets notifications describe
指令:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
其中:
BUCKET_NAME
是要擷取通知設定的值區名稱,例如my-bucket
。NOTIFICATION_ID
是相關設定的 ID 號碼。例如:5
。
如果成功,回應會類似以下範例:
etag: '132' id: '132' kind: storage#notification payload_format: JSON_API_V1 selfLink: https://www.googleapis.com/storage/v1/b/my-bucket/notificationConfigs/132 topic: //pubsub.googleapis.com/projects/my-project/topics/my-bucket
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
如要使用 PHP 取得值區的通知設定,請參閱 Google Cloud 用戶端程式庫參考說明文件。Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET notificationConfigs
要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
其中:
BUCKET_NAME
是要擷取通知設定的值區名稱。例如:my-bucket
。NOTIFICATION_ID
是要擷取的通知設定 ID 號碼。例如:5
。
XML API
您無法使用 XML API 管理 Pub/Sub 通知。
列出 bucket 的通知設定
如要列出與特定值區相關聯的所有通知設定:
控制台
您無法使用Google Cloud 控制台管理 Pub/Sub 通知。請改用 gcloud CLI 或其中一個可用的用戶端程式庫。
指令列
使用 gcloud storage buckets notifications list
指令:
gcloud storage buckets notifications list gs://BUCKET_NAME
其中 BUCKET_NAME
是您要列出通知設定的值區名稱。例如:my-bucket
。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
如要使用 PHP 列出與值區相關聯的通知設定,請參閱 Google Cloud 用戶端程式庫參考文件。Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET notificationConfigs
要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
其中
BUCKET_NAME
是您要列出通知設定的值區名稱。例如:my-bucket
。
XML API
您無法使用 XML API 管理 Pub/Sub 通知。
移除通知設定
如要從值區中移除現有的通知設定:
控制台
您無法使用Google Cloud 控制台管理 Pub/Sub 通知。請改用 gcloud CLI 或其中一個可用的用戶端程式庫。
指令列
使用 gcloud storage buckets notifications delete
指令:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
其中:
BUCKET_NAME
是要刪除通知設定的值區名稱。例如:my-bucket
。NOTIFICATION_ID
是要刪除的設定 ID 編號。例如:5
。
如果成功,回應會類似以下範例:
Completed 1
傳送後,系統最多可能需要 30 秒才能停止通知設定所觸發的所有通知。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
如要使用 PHP 刪除 bucket 的通知設定,請參閱 Google Cloud 用戶端程式庫參考說明文件。Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Terraform
如要移除您建立的通知設定,請從包含 Terraform 檔案的資料夾執行 terraform destroy
。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過DELETE notificationConfigs
要求呼叫 JSON API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
其中:
BUCKET_NAME
是要刪除通知設定的值區名稱。例如:my-bucket
。NOTIFICATION_ID
是要刪除的通知設定 ID 編號。例如:5
。
傳送後,系統最多可能需要 30 秒才能停止通知設定所觸發的所有通知。
XML API
您無法使用 XML API 管理 Pub/Sub 通知。
後續步驟
進一步瞭解 Cloud Storage 的 Pub/Sub 通知。
在 Pub/Sub 中建立訂閱,以查看 Cloud Storage 傳送的通知。
使用 Cloud Run 函式透過 Cloud Storage 觸發條件傳送事件。