本簡單教學課程將示範如何使用 Pub/Sub 觸發程序,編寫、部署及觸發事件驅動型 Cloud Run 函式。
如果您是 Pub/Sub 新手,想進一步瞭解相關資訊,請參閱 Pub/Sub 說明文件,特別是管理主題和訂閱項目。如要瞭解如何在 Cloud Run 函式中使用 Pub/Sub 主題和訂閱項目,請參閱「Pub/Sub 觸發程序」一文。
準備應用程式
將應用程式存放區範例複製到本機電腦中:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
您也可以 下載 zip 格式的範例,然後解壓縮該檔案。
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
您也可以 下載 zip 格式的範例,然後解壓縮該檔案。
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
您也可以 下載 zip 格式的範例,然後解壓縮該檔案。
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
您也可以 下載 zip 格式的範例,然後解壓縮該檔案。
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
您也可以 下載 zip 格式的範例,然後解壓縮該檔案。
變更為包含 Cloud Run 函式範例程式碼的目錄,以存取 Pub/Sub:
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/hello-pubsub/
Ruby
cd ruby-docs-samples/functions/helloworld/pubsub/
查看程式碼範例:
Node.js
Python
Go
Java
Ruby
部署函式
如要使用 Pub/Sub 觸發條件部署函式,請在包含範例程式碼的目錄中執行下列指令 (如果是 Java,則是在 pom.xml
檔案中):
Node.js
gcloud functions deploy helloPubSub \ --runtime nodejs22 \
--trigger-topic YOUR_TOPIC_NAME
使用 --runtime
標記指定支援的 Node.js 版本執行階段 ID,以執行函式。
Python
gcloud functions deploy hello_pubsub \ --runtime python312 \
--trigger-topic YOUR_TOPIC_NAME
使用 --runtime
標記指定支援的 Python 版本執行階段 ID,以執行函式。
Go
gcloud functions deploy HelloPubSub \ --runtime go121 \
--trigger-topic YOUR_TOPIC_NAME
Java
gcloud functions deploy java-pubsub-function \ --entry-point functions.HelloPubSub \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_TOPIC_NAME
使用 --runtime
標記指定支援的 Java 版本執行函式的執行階段 ID。
Ruby
gcloud functions deploy hello_pubsub --runtime ruby33 \
--trigger-topic YOUR_TOPIC_NAME
使用 --runtime
標記指定支援的 Ruby 版本執行階段 ID,以執行函式。
其中 YOUR_TOPIC_NAME
是函式要訂閱的 Pub/Sub 主題名稱。
如果 YOUR_TOPIC_NAME
不存在,這項指令會為您建立。您也可以在執行 deploy
指令前,使用Google Cloud 主控台或下列 gcloud
指令建立主題:
gcloud pubsub topics create YOUR_TOPIC_NAME
觸發函式
將訊息發布至 Pub/Sub 主題。在本例中,訊息是函式會納入問候語的名稱:
gcloud pubsub topics publish
YOUR_TOPIC_NAME
--messageYOUR_NAME
將
YOUR_TOPIC_NAME
替換為 Pub/Sub 主題名稱,並將YOUR_NAME
替換為任意字串。檢查記錄以確定執行已經完成:
gcloud functions logs read --limit 50
您也可以從函式內部將訊息發布至 Pub/Sub 主題。