Cloud Storage 觸發條件 (第 1 代)

在 Cloud Run 函式中,Cloud Storage 觸發條件可讓函式因應 Cloud Storage 的變更而呼叫。為函式指定 Cloud Storage 觸發條件時,請選擇事件類型並指定 Cloud Storage bucket。每當指定 bucket 中的物件 (檔案) 發生變更時,系統就會呼叫函式。

中。

支援的 Cloud Storage 事件類型如下:

事件 事件類型 說明
物件已完成
  • google.storage.object.finalize
當建立新物件,或覆寫現有物件並建立該物件的新版本時,就會發生這個事件。
物件已刪除
  • google.storage.object.delete
物件永久刪除時會發生。
物件已封存
  • google.storage.object.archive
當物件的使用中版本變成非現行版本時,就會發生這種情況。 詳情請參閱物件版本管理
物件中繼資料已更新
  • google.storage.object.metadataUpdate
現有物件的中繼資料變更時,就會觸發這個事件。

如要讓函式使用 Cloud Storage 觸發條件,必須將函式實作為事件驅動函式

「Google Events」存放區包含其他資源,可供您處理事件資料。

部署作業

部署函式時,您可以指定 Cloud Storage 觸發條件。如需部署函式的一般操作說明,請參閱「部署 Cloud Run 函式」。如需在部署期間設定 Cloud Storage 觸發條件的相關資訊,請參閱下列內容。

gcloud

如果您是使用 gcloud CLI 部署,可以搭配下列旗標使用 Cloud Storage Object finalized 事件類型:

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-bucket=YOUR_STORAGE_BUCKET \
[--retry] \
...
  • --trigger-bucket 旗標會指定觸發程序監控的 Cloud Storage 值區。這個 bucket 內的「物件最終化」事件會觸發函式呼叫。
  • --retry 旗標可控制系統是否自動重試失敗的函式呼叫。詳情請參閱「重試事件驅動函式」。

如要使用「Object finalized」以外的事件類型,請使用下列旗標:

  gcloud functions deploy YOUR_FUNCTION_NAME 
--no-gen2
--trigger-event=EVENT_TYPE
--trigger-resource=YOUR_STORAGE_BUCKET
...

舊版 Cloud Storage 事件

Cloud Run 函式 (第 1 代) 中的舊版函式會使用舊版物件變更通知,做為 Cloud Storage 觸發條件:

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-event=providers/cloud.storage/eventTypes/object.change \
--trigger-resource=YOUR_STORAGE_BUCKET \
...

如果舊版函式已取用這些事件,則支援這個事件類型。不過,我們不建議使用這類事件,因為這類事件日後可能會遭到移除。

主控台

如果您是使用 Google Cloud 控制台部署,可以在「觸發條件」部分設定 Cloud Storage 觸發條件:

  1. 在「觸發條件類型」欄位中,選取「Cloud Storage」
  2. 在「活動類型」欄位中,選取活動類型。
  3. 在「Bucket」(值區) 欄位中,按一下「Browse」(瀏覽),選取要讓觸發條件監控的 Cloud Storage 值區。變更這個 bucket 內的物件會觸發函式呼叫。
  4. 選取或取消選取「Retry on failure」(失敗時重試) 核取方塊,即可控制系統是否要自動重試失敗的函式呼叫。詳情請參閱「重試事件驅動函式」。

活動傳送

Cloud Storage 觸發條件是透過 Cloud Storage 的 Pub/Sub 通知實作。事件須遵守 Pub/Sub 通知傳送保證

Cloud Storage 值區最多可設定 10 項通知,在特定事件發生時觸發通知。超出 bucket 的通知限制,會導致後續函式部署作業失敗,並顯示類似下列的錯誤:

Cloud Storage bucket ...: Pub/Sub notification limit reached

如要解決這項限制,可以自行管理 Pub/Sub 主題,並註冊該主題以接收 Cloud Storage 通知,讓函式對您想要的通知類型做出回應。舉例來說,您可以為所選事件 (例如物件建立) 設定單一通知,並傳送至 Pub/Sub 主題。接著,視需要讓多個函式訂閱者處理主題事件,並將事件傳送至多個目的地。例如:

  1. 建立自己的 Pub/Sub 主題
  2. 在 Cloud Storage 值區中建立單一通知設定,在特定事件 (例如物件建立 OBJECT_FINALIZE) 發生時觸發,並將事件傳送至單一 Pub/Sub 主題。
  3. 建立由 Pub/Sub 主題觸發的函式。

如要進一步瞭解 Cloud Storage 限制,請參閱「配額與限制」。

後續步驟