arrow_back

Pub/Sub:Qwik Start - 命令行

登录 加入
访问 700 多个实验和课程

Pub/Sub:Qwik Start - 命令行

实验 40 分钟 universal_currency_alt 免费 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP095

Google Cloud 自学实验的徽标

概览

Pub/Sub 是一种用于在应用和服务之间交换事件数据的通讯服务。通过分离发送者和接收者,该服务支持在独立编写的应用之间安全地进行通信并保证高可用性。Pub/Sub 提供延迟低且持久的通讯功能,开发者常使用该服务实现异步工作流,分发事件通知,以及流式传输来自各种进程或设备的数据。

学习内容

在此实验中,您将:

  • 创建、删除和列出 Pub/Sub 主题和订阅
  • 向主题发布消息
  • 学习如何使用拉取订阅方

前提条件

本实验是入门级实验。我们预设您缺少 Pub/Sub 相关经验,将会向您介绍关于设置和使用此 Google Cloud 服务的基础知识。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

Pub/Sub 基础知识

如上文所述,Pub/Sub 是一种全球异步通讯服务。Pub/Sub 中常见的三个术语是“主题”“发布”和“订阅”。

  • 主题是一个共享字符串,可让应用通过普通会话与其他应用建立连接。

  • 发布方向 Cloud Pub/Sub 主题推送(或发布)消息。

  • 订阅方会针对某个主题创建“订阅”,以后将在主题中通过该订阅拉取消息或为推送订阅配置 webhook。每个订阅方都必须在特定的时间范围内确认每条消息。该时间范围可配置。

总而言之,生产者向某个主题发布消息,使用者针对某个主题创建订阅,以从该主题接收消息。

任务 1. Pub/Sub 主题

Pub/Sub 已预安装在 Cloud Shell 中,因此您无需安装或配置即可开始使用此服务。

  1. 运行以下命令创建一个名为 myTopic 的主题:
gcloud pubsub topics create myTopic

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

创建 Pub/Sub 主题。
  1. 此外,再创建两个主题,一个名为 Test1,另一个名为 Test2
gcloud pubsub topics create Test1 gcloud pubsub topics create Test2
  1. 要查看您刚刚创建的三个主题,请运行以下命令:
gcloud pubsub topics list

输出应类似于以下内容:

--- messageStoragePolicy: allowedPersistenceRegions: - us-central1 name: projects/qwiklabs-gcp-01-af5b4aaa2d32/topics/myTopic --- messageStoragePolicy: allowedPersistenceRegions: - us-central1 name: projects/qwiklabs-gcp-01-af5b4aaa2d32/topics/Test1 --- messageStoragePolicy: allowedPersistenceRegions: - us-central1 name: projects/qwiklabs-gcp-01-af5b4aaa2d32/topics/Test2
  1. 现在来清除数据。运行以下命令删除 Test1Test2
gcloud pubsub topics delete Test1 gcloud pubsub topics delete Test2
  1. 再次运行 gcloud pubsub topics list 命令,确认这两个主题已删除。
gcloud pubsub topics list

输出将如下所示:

--- name: projects/qwiklabs-gcp-3450558d2b043890/topics/myTopic

任务 2. Pub/Sub 订阅

现在,您已经了解如何创建、查看和删除主题,可以开始使用订阅了。

  1. 运行以下命令针对主题 myTopic 创建名为 mySubscription 的订阅。
gcloud pubsub subscriptions create --topic myTopic mySubscription

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

创建 Pub/Sub 订阅。
  1. 添加另外两个针对 myTopic 的订阅。运行以下命令针对 Test1Test2 创建订阅:
gcloud pubsub subscriptions create --topic myTopic Test1 gcloud pubsub subscriptions create --topic myTopic Test2
  1. 运行以下命令列出针对 myTopic 的订阅:
gcloud pubsub topics list-subscriptions myTopic

输出应类似于以下内容:

--- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/Test2 --- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/Test1 --- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/mySubscription

检验您的掌握情况

下面的选择题可加强您对本实验所涉概念的理解。请尽您所能回答。

  1. 现在,删除 Test1Test2 订阅。运行以下命令:
gcloud pubsub subscriptions delete Test1 gcloud pubsub subscriptions delete Test2
  1. 检查 Test1Test2 订阅是否已被删除。再次运行 list-subscriptions 命令:
gcloud pubsub topics list-subscriptions myTopic

输出将如下所示:

--- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/mySubscription

任务 3. 通过 Pub/Sub 发布和拉取单条消息

接下来,您将学习如何向 Pub/Sub 主题发布消息。

  1. 运行以下命令将消息 "hello" 发布到您之前创建的主题 (myTopic) 中:
gcloud pubsub topics publish myTopic --message "Hello"
  1. myTopic 再发布一些消息。运行以下命令(将 <YOUR NAME> 替换为您的姓名,将 <FOOD> 替换为您喜欢的食物):
gcloud pubsub topics publish myTopic --message "Publisher's name is <YOUR NAME>" gcloud pubsub topics publish myTopic --message "Publisher likes to eat <FOOD>" gcloud pubsub topics publish myTopic --message "Publisher thinks Pub/Sub is awesome"

接下来,使用 pull 命令从您的主题中拉取消息。拉取命令基于订阅运行,也就是说,该命令能够执行是因为您之前针对主题 myTopic 设置了订阅 mySubscription

  1. 使用以下命令从 Pub/Sub 主题中拉取您刚才发布的消息:
gcloud pubsub subscriptions pull mySubscription --auto-ack

输出应类似于以下内容:

一个包含三列的表,列标题分别为“Data”“Message_ID”和“Attributes”。“Data”列包含以下内容:“Publisher likes to eat <FOOD>”。

出现了什么情况?您向主题发布了 4 条消息,但输出中只有 1 条消息。

现在,我们来重点了解一下常常会让开发者犯错的拉取命令 (pull) 的几个特性:

  • 即使您订阅的主题中包含多条消息,使用不带任何标志的拉取命令也只会输出一条消息。
  • 当基于特定订阅的拉取命令输出某条消息后,您无法再次使用该拉取命令访问这条消息。
  1. 要了解第二条特性所代表的含义,请将上一个命令再运行三次。您会发现如此将输出您之前发布的其他消息。

  2. 现在,第 4 次运行该命令。输出将如下所示(因为已没有消息可返回):

gcpstaging20394_student@cloudshell:~ (qwiklabs-gcp-3450558d2b043890)$ gcloud pubsub subscriptions pull mySubscription --auto-ack Listed 0 items.

在最后一部分中,您将学习如何使用标志 (flag) 从主题中拉取多条消息。

任务 4. 通过 Pub/Sub 从订阅中拉取所有消息

由于您在上一个示例中从您的主题中拉取了所有消息,请再向 myTopic 填充一些消息。

  1. 运行以下命令:
gcloud pubsub topics publish myTopic --message "Publisher is starting to get the hang of Pub/Sub" gcloud pubsub topics publish myTopic --message "Publisher wonders if all messages will be pulled" gcloud pubsub topics publish myTopic --message "Publisher will have to test to find out"
  1. 在您的命令中添加一个标志,以便通过一次请求将三条消息全部输出。

您可能尚未注意到,但其实您一直在使用标志:拉取命令中的 --auto-ack 就是一个标志。该标志设置了消息的格式,让拉取的消息整齐地显示在方框中。

另一个标志是 limit,用于设置要拉取的消息的数量上限。

  1. 等待一段时间,以完成主题的创建。运行包含 limit 标志的拉取命令:
gcloud pubsub subscriptions pull mySubscription --limit=3

输出应如下所示:

一个包含三列的表,列标题分别为“Data”“Message_ID”和“Attributes”。“Data”列包含三行数据。

现在,您已了解如何向 Pub/Sub 命令添加标志以输出大量消息,为成为 Pub/Sub 专家开了个好头。

恭喜!

通过本实验,您了解了关于 Pub/Sub 主题、订阅、拉取命令和标志的基础知识。

参与下一项实验

本实验是 Qwik Starts 系列实验的其中一项。通过这些实验,您可以一窥 Google Cloud 的诸多功能。请在实验目录中搜索“Qwik Starts”,找到您要参与的下一项实验!

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

本手册的最后更新时间:2025 年 3 月 10 日

本实验的最后测试时间:2025 年 3 月 10 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。