使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
快速入门:使用 Pub/Sub 消息接收事件 (Google Cloud CLI)

使用 Pub/Sub 消息接收事件 (gcloud CLI)

本快速入门介绍如何部署使用 Pub/Sub 接收事件的未经身份验证的 Cloud Run 服务。

在本快速入门中,您将执行以下操作:

  1. 将事件接收器服务部署到 Cloud Run。

  2. 创建 Eventarc 触发器。

  3. 向 Pub/Sub 主题发布消息以生成事件,并在 Cloud Run 日志中查看事件。

准备工作

如果您的组织将限制应用于您的 Google Cloud 环境,则本文档中的某些步骤可能无法正常工作。在这种情况下,您可能无法完成创建公共 IP 地址或服务帐号密钥等任务。如果您发出的请求会返回有关限制条件的错误,请参阅如何在受限的 Google Cloud 环境中开发应用

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  4. 启用 Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  7. 启用 Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc API。

    启用 API

  8. 安装并初始化 Google Cloud CLI。
  9. 更新 gcloud 组件:
    gcloud components update
  10. 使用您的帐号登录:
    gcloud auth login
  11. 设置本快速入门中使用的配置变量:

    gcloud config set project PROJECT_ID
    gcloud config set run/region us-central1
    gcloud config set run/platform managed
    gcloud config set eventarc/location us-central1
    

    其中 PROJECT_ID 是您的 Google Cloud 项目 ID。

将事件接收器部署到 Cloud Run

部署接收和记录事件的 Cloud Run 服务。

  1. 克隆代码库:

    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 文件并将其解压缩。

    C#

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git

    或者,您也可以下载该示例的 zip 文件并将其解压缩。

  2. 切换到包含 Cloud Run 示例代码的目录:

    Node.js

    cd nodejs-docs-samples/eventarc/pubsub/

    Python

    cd python-docs-samples/eventarc/pubsub/

    Go

    cd golang-samples/eventarc/pubsub/

    Java

    cd java-docs-samples/eventarc/pubsub/

    Ruby

    cd ruby-docs-samples/eventarc/pubsub/

    C#

    cd dotnet-docs-samples/eventarc/pubsub/
  3. 构建容器并将其上传到 Cloud Build:

    gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
    
  4. 将容器映像部署到 Cloud Run:

    gcloud run deploy helloworld-events-pubsub-quickstart \
        --image gcr.io/$(gcloud config get-value project)/events-pubsub \
        --allow-unauthenticated
    

当您看到服务网址时,表示部署完成。

创建 Eventarc 触发器

当消息发布到 Pub/Sub 主题时,事件触发器会将消息发送到部署在 Cloud Run 上的事件接收器服务。

  1. 创建一个触发器来监听 Pub/Sub 消息:

    新建 Pub/Sub 主题

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-quickstart \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
    

    这会创建一个新的 Pub/Sub 主题和一个名为 events-pubsub-trigger 的触发器。

    现有 Pub/Sub 主题

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-quickstart \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID
    

    请替换以下内容:

    • PROJECT_ID 是您的 Google Cloud 项目 ID
    • TOPIC_ID 是现有 Pub/Sub 主题的 ID。

    这将为现有 Pub/Sub 主题创建一个名为 events-pubsub-trigger 的触发器。

  2. 确认触发器已成功创建:

    gcloud eventarc triggers list --location=us-central1
    

在 Pub/Sub 主题中发送和查看事件

Eventarc 事件是发布到 Pub/Sub 主题的消息。要使用 Pub/Sub 主题发送事件,请执行以下操作:

  1. 查找 Pub/Sub 主题并将其设置为环境变量:

    export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \
        --format='value(transport.pubsub.topic)')
    
  2. 向 Pub/Sub 主题发送消息以生成事件:

    gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
    

    事件会被发送到 Cloud Run 服务,该服务会记录事件消息。

  3. 如需查看事件消息,请转到 Cloud Run 服务日志:

    1. 转到 Google Cloud Console
    2. 点击 helloworld-events-pubsub-quickstart 服务。
    3. 选择日志标签页。

      您可能需要等待一些时间才能看到日志。如果您没有立即看到日志,请稍等片刻再检查一次。

  4. 查找“Hello Runner!”消息。

恭喜!您已成功将事件接收器服务部署到 Cloud Run,创建 Eventarc 触发器,在 Pub/Sub 中生成事件并在 Cloud Run 日志中查看该事件。

清除数据

虽然当服务未在使用时 Cloud Run 不会产生费用,但您可能仍然需要为在 Container Registry 中存储容器映像Eventarc 资源以及 Pub/Sub 消息付费。

您可以删除映像删除 Pub/Sub 主题以及删除 Pub/Sub 订阅。要删除 Eventarc 触发器,请运行以下命令:

gcloud eventarc triggers delete events-pubsub-trigger

或者,您也可以删除 Google Cloud 项目,以避免产生费用。删除 Cloud 项目后,系统即会停止对该项目中使用的所有资源计费。

  1. 在 Google Cloud 控制台中,转到管理资源页面:

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤