arrow_back

Pub/Sub: Qwik Start – Python

Get access to 700+ labs and courses

Pub/Sub: Qwik Start – Python

Lab 30 годин universal_currency_alt 1 кредит show_chart Початковий
info This lab may incorporate AI tools to support your learning.
Get access to 700+ labs and courses

GSP094

Логотип Google Cloud Self-Paced Labs

Огляд

За допомогою сервісу Pub/Sub додатки можуть надійно, швидко й асинхронно обмінюватися повідомленнями. Для цього постачальник даних публікує повідомлення з темою Cloud Pub/Sub, а додаток підписки підписується на цю тему й отримує відповідні повідомлення. Cloud Pub/Sub повторно надсилає недоставлені повідомлення протягом семи днів.

На цьому практичному занятті ви навчитеся публікувати повідомлення через Pub/Sub за допомогою клієнтської бібліотеки Python.

Завдання

На цьому практичному занятті ви виконаєте перелічені нижче завдання.

  • Вивчите основні принципи роботи з Pub/Sub.
  • Створите, видалите й переглянете теми та підписки Pub/Sub.
  • Опублікуєте повідомлення з певною темою.
  • Виведете окремі повідомлення теми за допомогою pull-підписки.

Налаштування й вимоги

Перш ніж натиснути кнопку Start Lab (Почати практичну роботу)

Ознайомтеся з наведеними нижче вказівками. На виконання практичного заняття відводиться обмежений час, і його не можна призупинити. Щойно ви натиснете Почати заняття, з’явиться таймер, який показуватиме, скільки часу для роботи з ресурсами Google Cloud у вас залишилося.

Ви зможете виконати практичне заняття в дійсному робочому хмарному середовищі (не в симуляції або демонстраційному середовищі). Для цього на час практичного заняття вам надаються тимчасові облікові дані для реєстрації і входу в Google Cloud.

Для цього практичного заняття потрібно мати:

  • стандартний вебпереглядач, наприклад Chrome (рекомендовано);
Примітка. Виконуйте практичне заняття в анонімному вікні вебпереглядача (рекомендовано). Так ви уникнете додаткової плати, що може стягуватися з вашого особистого облікового запису внаслідок його помилкового використання замість облікового запису для навчання.
  • достатню кількість часу, оскільки почавши практичне заняття, ви не зможете призупинити його.
Примітка. Для виконання цього практичного заняття використовуйте лише обліковий запис для навчання, оскільки з іншого облікового запису Google Cloud може стягуватися плата.

Як почати виконувати практичну роботу й увійти в Google Cloud Console

  1. Натисніть кнопку Start Lab (Почати практичне заняття). Якщо за практичне заняття необхідно заплатити, відкриється вікно, де ви зможете обрати спосіб оплати. Ліворуч розміщено панель "Відомості про практичне заняття" з такими компонентами:

    • кнопка "Відкрити консоль Google";
    • час до закінчення;
    • тимчасові облікові дані, які потрібно використовувати для доступу до цього практичного заняття;
    • інша інформація, необхідна для виконання цього практичного заняття.
  2. Натисніть Відкрити консоль Google або натисніть правою кнопкою миші й виберіть Відкрити анонімне вікно, якщо ви використовуєте вебпереглядач Chrome.

    Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою "Увійти".

    Порада. Упорядковуйте вкладки в окремих вікнах, розміщуючи їх поруч.

    Примітка. Якщо з’явиться вікно Виберіть обліковий запис, натисніть Вибрати інший обліковий запис.
  3. За потреби скопіюйте значення в полі Username (Ім’я користувача) нижче й вставте його у вікні Вхід.

    {{{user_0.username | "Username"}}}

    Поле "Ім’я користувача" також можна знайти на панелі "Відомості про практичне заняття".

  4. Натисніть Далі.

  5. Скопіюйте значення в полі Password (Пароль) нижче й вставте його у вікні Welcome (Привітання).

    {{{user_0.password | "Password"}}}

    Поле "Пароль" також можна знайти на панелі "Відомості про практичне заняття".

  6. Натисніть Далі.

    Важливо. Обов’язково використовуйте облікові дані, призначені для відповідного практичного заняття. Не використовуйте облікові дані Google Cloud. Примітка. Якщо ввійти у власний обліковий запис Google Cloud, може стягуватися додаткова плата.
  7. Що від вас очікується

    • Прийміть Умови використання.
    • Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
    • Не реєструйте безкоштовні пробні версії.

Через кілька секунд консоль Google Cloud відкриється в новій вкладці.

Примітка. Щоб отримати доступ до продуктів і сервісів Google Cloud, натисніть меню навігації або введіть назву сервісу чи продукту в полі пошуку. Значок меню навігації і поле пошуку

Як активувати Cloud Shell

Cloud Shell – це віртуальна машина з попередньо завантаженими інструментами для розробників. Вона містить головний каталог обсягом 5 ГБ постійної пам’яті й працює в середовищі Google Cloud. Cloud Shell надає доступ до ресурсів Google Cloud через командний рядок.

  1. Угорі консолі Google Cloud натисніть Activate Cloud Shell (Активувати Cloud Shell) Значок активації Cloud Shell.

  2. У вікнах, що відкриються, виконайте наведені нижче дії.

    • У вікні з інформацією про Cloud Shell натисніть Continue (Далі).
    • Дозвольте Cloud Shell використовувати ваші облікові дані, щоб здійснювати виклики Google Cloud API.

Щойно ви підключитеся, вас буде автентифіковано, а проєкт отримає ваш 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. Натисніть Authorize (Авторизувати).

Вивід:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Необов’язково) Щоб вивести ідентифікатор проєкту, введіть таку команду:
gcloud config list project

Вивід:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Примітка. Щоб знайти повну документацію щодо gcloud, перегляньте посібник з інтерфейсу командного рядка gcloud у Google Cloud.

Завдання 1. Створіть віртуальне середовище

За допомогою віртуальних середовищ Python можна ізолювати встановлення пакетів від системи.

  1. Установіть середовище virtualenv:
sudo apt-get install -y virtualenv
  1. Створіть віртуальне середовище:
python3 -m venv venv
  1. Активуйте віртуальне середовище:
source venv/bin/activate

Завдання 2. Установіть клієнтську бібліотеку

  1. Виконайте наведену нижче команду, щоб установити клієнтську бібліотеку.
pip install --upgrade google-cloud-pubsub
  1. Скопіюйте сховище GitHub, щоб отримати зразок коду:
git clone https://github.com/googleapis/python-pubsub.git
  1. Перейдіть до відповідного каталогу:
cd python-pubsub/samples/snippets

Завдання 3. Pub/Sub – основні принципи роботи

Pub/Sub – це асинхронний глобальний сервіс обміну повідомленнями. Під час роботи з Pub/Sub ви зустрічатимете три основні терміни: topics (теми), publish (публікувати) і subscription (підписка).

Тема – це спільний сегмент, за допомогою якого додатки зв’язуються між собою через той самий потік.

Додатки публікації надсилають (або публікують) повідомлення з темою Pub/Sub, а додатки підписки підписуються на тему, що дає змогу отримувати повідомлення методом pull або методом push (через налаштований вебхук). Кожен підписник має підтвердити отримання повідомлення протягом указаного проміжку часу.

Таким чином додатки публікації створюють і надсилають повідомлення з певною темою, а додатки підписки підписуються на неї, щоб отримувати відповідні повідомлення.

Pub/Sub у Google Cloud

Сервіс Pub/Sub є частиною середовища Cloud Shell, тому для початку роботи з ним не потрібно нічого додатково встановлювати або налаштовувати. Під час цього практичного заняття ви використовуватимете Python, щоб створити тему, підписку, а потім переглянути повідомлення. Щоб опублікувати повідомлення з певною темою, виконайте команду gcloud.

Завдання 4. Створіть тему

Щоб опублікувати дані в Pub/Sub, потрібно створити тему й налаштувати для неї додаток публікації.

  1. У Cloud Shell ідентифікатор вашого проекту автоматично зберігається в змінній середовища GOOGLE_CLOUD_PROJECT.
echo $GOOGLE_CLOUD_PROJECT
  1. Переконайтеся, що у виводі відображається ідентифікатор проекту, який указано на панелі CONNECTION DETAILS (ВІДОМОСТІ ПРО ПІДКЛЮЧЕННЯ).

publisher.py – це скрипт, у якому показано, як виконувати основні операції з темами за допомогою Cloud Pub/Sub API. Перегляньте вміст цього скрипту:

cat publisher.py Примітка. Ви також можете використовувати встановлені в Cloud Shell редактори оболонки, як-от Nano чи Vim, або скористатися редактором коду Cloud Shell, щоб переглянути скрипт python-pubsub/samples/snippets/publisher.py.
  1. Щоб переглянути інформацію про скрипт, виконайте таку команду:
python publisher.py -h

Приклад виводу:

usage: publisher.py [-h] project {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} ... This application demonstrates how to perform basic operations on topics with the Cloud Pub/Sub API. For more information, see the README.md under /pubsub and the documentation at https://cloud.google.com/pubsub/docs. positional arguments: project Your Google Cloud project ID {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} list Lists all Pub/Sub topics in the given project. create Create a new Pub/Sub topic. delete Deletes an existing Pub/Sub topic. publish Publishes multiple messages to a Pub/Sub topic. publish-with-custom-attributes Publishes multiple messages with custom attributes to a Pub/Sub topic. publish-with-futures Publishes multiple messages to a Pub/Sub topic and prints their message IDs. publish-with-error-handler Publishes multiple messages to a Pub/Sub topic with an error handler. publish-with-batch-settings Publishes multiple messages to a Pub/Sub topic with batch settings. optional arguments: -h, --help show this help message and exit
  1. Запустіть скрипт публікації, щоб створити тему Pub/Sub:
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic

Приклад виводу:

Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Перевірка виконаного завдання

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Якщо тему Cloud Pub/Sub створено правильно, з’явиться оцінка.

Створіть тему.
  1. Ця команда повертає список тем Pub/Sub у відповідному проекті:
python publisher.py $GOOGLE_CLOUD_PROJECT list

Приклад виводу:

name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Ви також можете переглянути щойно створену тему в Cloud Console.

  1. Перейдіть у меню навігації > Pub/Sub > Topics (Теми).

З’явиться тема MyTopic.

Завдання 5. Створіть підписку

  1. Створіть підписку Pub/Sub для відповідної теми за допомогою скрипту subscriber.py:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub

Перевірка виконаного завдання

Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Якщо підписку Cloud Pub/Sub створено правильно, з’явиться оцінка.

Створіть підписку.
  1. Ця команда повертає список підписок для відповідного проекту:
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project

З’явиться лише одна підписка, оскільки ви створили тільки її.

Приклад виводу:

projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
  1. Перевірте щойно створену підписку за допомогою консолі. На панелі ліворуч натисніть Subscriptions (Підписки). З’явиться назва підписки й відомості про неї.

  2. Щоб переглянути докладну інформацію про скрипт subscriber, виконайте таку команду:

python subscriber.py -h

Вивід:

usage: subscriber.py [-h] project {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} ... This application demonstrates how to perform basic operations on subscriptions with the Cloud Pub/Sub API. For more information, see the README.md under /pubsub and the documentation at https://cloud.google.com/pubsub/docs. positional arguments: project Your Google Cloud project ID {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} list_in_topic Lists all subscriptions for a given topic. list_in_project Lists all subscriptions in the current project. create Create a new pull subscription on the given topic. create-push Create a new push subscription on the given topic. delete Deletes an existing Pub/Sub topic. update Updates an existing Pub/Sub subscription's push endpoint URL. Note that certain properties of a subscription, such as its topic, are not modifiable. receive Receives messages from a pull subscription. receive-custom-attributes Receives messages from a pull subscription. receive-flow-control Receives messages from a pull subscription with flow control. receive-synchronously Pulling messages synchronously. listen_for_errors Receives messages and catches errors from a pull subscription. optional arguments: -h, --help show this help message and exit

Завдання 6. Опублікуйте повідомлення

Налаштувавши тему MyTopic і підписку MySub на цю тему, виконайте команди gcloud, щоб опублікувати повідомлення з відповідною темою.

  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"

Завдання 7. Перегляньте повідомлення

Опублікувавши повідомлення з темою MyTopic, отримайте й перегляньте їх за допомогою підписки MySub.

  1. Скористайтеся підпискою MySub, щоб отримати повідомлення з темою MyTopic:
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub

Приклад виводу:

Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub Received message: Message { data: 'Publisher thinks Pub/Sub is awesome' attributes: {} } Received message: Message { data: 'Hello' attributes: {} } Received message: Message { data: "Publisher's name is Harry" attributes: {} } Received message: Message { data: 'Publisher likes to eat cheese' attributes: {} }
  1. Щоб зупинити прослуховування, натисніть Ctrl+c.

Завдання 8. Перевірте свої знання

Дайте відповіді на запитання з кількома варіантами відповіді нижче, щоб закріпити розуміння понять, які зустрічаються в практичній роботі.

Вітаємо!

Ви створили тему Pub/Sub за допомогою Python, опублікували повідомлення з такою темою, створили підписку й за її допомогою отримали дані з певної теми.

Наступні кроки/Докладніше

Доповнення для Pub/Sub, Pub/Sub Lite – це зональний сервіс для систем обміну повідомленнями із шаблонами прогнозованого трафіку. Якщо ви публікуєте від 1 MiБ до 1 ГіБ повідомлень на секунду, вам підійде Pub/Sub Lite. Це недорогий варіант для отримання й імпортування великих обсягів даних про події. Ви можете спробувати попрацювати з Pub/Sub Lite на цьому практичному занятті:

Ця робота також входить до низки практичних робіт під назвою Qwik Starts. Вони призначені для ознайомлення з функціями Google Cloud. Такі практичні роботи можна знайти в каталозі Google Cloud Skills Boost за запитом "Qwik Starts".

Навчання й сертифікація Google Cloud

…допомагають ефективно використовувати технології Google Cloud. Наші курси передбачають опанування технічних навичок, а також ознайомлення з рекомендаціями, що допоможуть вам швидко зорієнтуватися й вивчити матеріал. Ми пропонуємо курси різних рівнів – від базового до високого. Ви можете вибрати формат навчання (за запитом, онлайн або офлайн) відповідно до власного розкладу. Пройшовши сертифікацію, ви перевірите й підтвердите свої навички та досвід роботи з технологіями Google Cloud.

Посібник востаннє оновлено 13 лютого 2024 року

Практичну роботу востаннє протестовано 22 вересня 2023 року

© Google LLC 2025. Усі права захищено. Назва та логотип Google є торговельними марками Google LLC. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.