GSP094

Огляд
За допомогою сервісу 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
-
Натисніть кнопку Start Lab (Почати практичне заняття). Якщо за практичне заняття необхідно заплатити, відкриється вікно, де ви зможете обрати спосіб оплати.
Ліворуч розміщено панель "Відомості про практичне заняття" з такими компонентами:
- кнопка "Відкрити консоль Google";
- час до закінчення;
- тимчасові облікові дані, які потрібно використовувати для доступу до цього практичного заняття;
- інша інформація, необхідна для виконання цього практичного заняття.
-
Натисніть Відкрити консоль Google або натисніть правою кнопкою миші й виберіть Відкрити анонімне вікно, якщо ви використовуєте вебпереглядач Chrome.
Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою "Увійти".
Порада. Упорядковуйте вкладки в окремих вікнах, розміщуючи їх поруч.
Примітка. Якщо з’явиться вікно Виберіть обліковий запис, натисніть Вибрати інший обліковий запис.
-
За потреби скопіюйте значення в полі Username (Ім’я користувача) нижче й вставте його у вікні Вхід.
{{{user_0.username | "Username"}}}
Поле "Ім’я користувача" також можна знайти на панелі "Відомості про практичне заняття".
-
Натисніть Далі.
-
Скопіюйте значення в полі Password (Пароль) нижче й вставте його у вікні Welcome (Привітання).
{{{user_0.password | "Password"}}}
Поле "Пароль" також можна знайти на панелі "Відомості про практичне заняття".
-
Натисніть Далі.
Важливо. Обов’язково використовуйте облікові дані, призначені для відповідного практичного заняття. Не використовуйте облікові дані Google Cloud.
Примітка. Якщо ввійти у власний обліковий запис Google Cloud, може стягуватися додаткова плата.
-
Що від вас очікується
- Прийміть Умови використання.
- Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
- Не реєструйте безкоштовні пробні версії.
Через кілька секунд консоль Google Cloud відкриється в новій вкладці.
Примітка. Щоб отримати доступ до продуктів і сервісів Google Cloud, натисніть меню навігації або введіть назву сервісу чи продукту в полі пошуку.
Як активувати Cloud Shell
Cloud Shell – це віртуальна машина з попередньо завантаженими інструментами для розробників. Вона містить головний каталог обсягом 5 ГБ постійної пам’яті й працює в середовищі Google Cloud. Cloud Shell надає доступ до ресурсів Google Cloud через командний рядок.
-
Угорі консолі Google Cloud натисніть Activate Cloud Shell (Активувати Cloud Shell)
.
-
У вікнах, що відкриються, виконайте наведені нижче дії.
- У вікні з інформацією про 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.
- (Необов’язково) Щоб вивести поточне ім’я облікового запису, введіть таку команду:
gcloud auth list
- Натисніть Authorize (Авторизувати).
Вивід:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Необов’язково) Щоб вивести ідентифікатор проєкту, введіть таку команду:
gcloud config list project
Вивід:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Примітка. Щоб знайти повну документацію щодо gcloud
, перегляньте посібник з інтерфейсу командного рядка gcloud у Google Cloud.
Завдання 1. Створіть віртуальне середовище
За допомогою віртуальних середовищ Python можна ізолювати встановлення пакетів від системи.
- Установіть середовище
virtualenv
:
sudo apt-get install -y virtualenv
- Створіть віртуальне середовище:
python3 -m venv venv
- Активуйте віртуальне середовище:
source venv/bin/activate
Завдання 2. Установіть клієнтську бібліотеку
- Виконайте наведену нижче команду, щоб установити клієнтську бібліотеку.
pip install --upgrade google-cloud-pubsub
- Скопіюйте сховище GitHub, щоб отримати зразок коду:
git clone https://github.com/googleapis/python-pubsub.git
- Перейдіть до відповідного каталогу:
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, потрібно створити тему й налаштувати для неї додаток публікації.
- У Cloud Shell ідентифікатор вашого проекту автоматично зберігається в змінній середовища
GOOGLE_CLOUD_PROJECT
.
echo $GOOGLE_CLOUD_PROJECT
- Переконайтеся, що у виводі відображається ідентифікатор проекту, який указано на панелі CONNECTION DETAILS (ВІДОМОСТІ ПРО ПІДКЛЮЧЕННЯ).
publisher.py
– це скрипт, у якому показано, як виконувати основні операції з темами за допомогою Cloud Pub/Sub API. Перегляньте вміст цього скрипту:
cat publisher.py
Примітка. Ви також можете використовувати встановлені в Cloud Shell редактори оболонки, як-от Nano чи Vim, або скористатися редактором коду Cloud Shell, щоб переглянути скрипт python-pubsub/samples/snippets/publisher.py
.
- Щоб переглянути інформацію про скрипт, виконайте таку команду:
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
- Запустіть скрипт публікації, щоб створити тему 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 створено правильно, з’явиться оцінка.
Створіть тему.
- Ця команда повертає список тем Pub/Sub у відповідному проекті:
python publisher.py $GOOGLE_CLOUD_PROJECT list
Приклад виводу:
name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"
Ви також можете переглянути щойно створену тему в Cloud Console.
- Перейдіть у меню навігації > Pub/Sub > Topics (Теми).
З’явиться тема MyTopic
.
Завдання 5. Створіть підписку
- Створіть підписку Pub/Sub для відповідної теми за допомогою скрипту
subscriber.py
:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub
Перевірка виконаного завдання
Щоб підтвердити виконання завдання, натисніть Check my progress (Підтвердити виконання). Якщо підписку Cloud Pub/Sub створено правильно, з’явиться оцінка.
Створіть підписку.
- Ця команда повертає список підписок для відповідного проекту:
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project
З’явиться лише одна підписка, оскільки ви створили тільки її.
Приклад виводу:
projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
-
Перевірте щойно створену підписку за допомогою консолі. На панелі ліворуч натисніть Subscriptions (Підписки). З’явиться назва підписки й відомості про неї.
-
Щоб переглянути докладну інформацію про скрипт 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
, щоб опублікувати повідомлення з відповідною темою
.
- Опублікуйте повідомлення "Hello" ("Привіт!") з темою
MyTopic
:
gcloud pubsub topics publish MyTopic --message "Hello"
- Опублікуйте ще кілька повідомлень із темою
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.
- Скористайтеся підпискою 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: {}
}
- Щоб зупинити прослуховування, натисніть 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. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.