arrow_back

Pub/Sub: Qwik Start – Python

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, 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.
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, 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 (Почати практичну роботу)

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

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

Щоб виконати цю практичну роботу, потрібно мати:

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

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

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

    • кнопка Open Google Cloud console (Відкрити Google Cloud Console);
    • час до закінчення;
    • тимчасові облікові дані, які потрібно використовувати для доступу до цієї практичної роботи;
    • інша інформація, необхідна для виконання цієї практичної роботи.
  2. Натисніть Open Google Cloud console (Відкрити Google Cloud Console) або натисніть правою кнопкою миші й виберіть Open Link in Incognito Window (Відкрити посилання в анонімному вікні), якщо ви використовуєте вебпереглядач Chrome.

    Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою Sign in (Вхід).

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

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

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

    Поле Username (Ім’я користувача) також можна знайти на панелі Lab Details (Відомості про практичну роботу).

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

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

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

    Поле Password (Пароль) також можна знайти на панелі Lab Details (Відомості про практичну роботу).

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

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

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

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

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

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

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

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

Щойно ви підключитеся, вас буде автентифіковано, а проект отримає ваш PROJECT_ID (ІДЕНТИФІКАТОР ПРОЕКТУ). Вивід міститиме рядок зі значенням PROJECT_ID (ІДЕНТИФІКАТОР ПРОЕКТУ) для цього сеансу:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud – це інструмент командного рядка для Google Cloud. Він входить у пакет Cloud Shell і підтримує функцію автозавершення клавішею TAB.

  1. (Необов’язково) Щоб вивести поточне ім’я облікового запису, введіть таку команду:
gcloud auth list
  1. Натисніть Authorize (Авторизувати).

  2. Вихідні дані матимуть такий вигляд:

Вивід:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Необов’язково) Щоб вивести ідентифікатор проекту, введіть таку команду:
gcloud config list project

Вивід:

[core] project = <project_ID>

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

[core] project = qwiklabs-gcp-44776a13dea667a6 Примітка. Щоб знайти повну документацію щодо 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 2024. Усі права захищено. Назва та логотип Google є торговельними марками Google LLC. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.

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