GSP094

Opis
Usługa Pub/Sub umożliwia aplikacjom niezawodną, szybką i asynchroniczną wymianę wiadomości. W tym celu producent danych publikuje wiadomości w temacie Cloud Pub/Sub. Subskrybent tworzy subskrypcję tego tematu i pobiera z niej wiadomości. Wiadomości, których nie udało się dostarczyć, Cloud Pub/Sub przechowuje przez maksymalnie 7 dni.
W tym module nauczysz się podstaw publikowania wiadomości w Pub/Sub przy użyciu biblioteki klienta w języku Python.
Jakie zadania wykonasz
W tym module:
- opanujesz podstawy Pub/Sub;
- utworzysz i usuniesz tematy i subskrypcje Pub/Sub oraz wyświetlisz ich listy;
- opublikujesz wiadomości w temacie,
- użyjesz subskrybenta stosującego metodę pull do wyświetlania wiadomości z poszczególnych tematów.
Konfiguracja i wymagania
Zanim klikniesz przycisk Rozpocznij moduł
Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.
W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.
Do ukończenia modułu potrzebne będą:
- Dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
Uwaga: uruchom ten moduł w oknie incognito (zalecane) lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie dodatkowych opłat na koncie osobistym.
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: w tym module używaj tylko konta do nauki. Jeśli użyjesz innego konta Google Cloud, mogą na nim zostać naliczone opłaty.
Rozpoczynanie modułu i logowanie się w konsoli Google Cloud
-
Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się okno, w którym możesz wybrać formę płatności.
Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:
- przyciskiem Otwórz konsolę Google Cloud;
- czasem, który Ci pozostał;
- tymczasowymi danymi logowania, których musisz użyć w tym module;
- innymi informacjami potrzebnymi do ukończenia modułu.
-
Kliknij Otwórz konsolę Google Cloud (lub kliknij prawym przyciskiem myszy i wybierz Otwórz link w oknie incognito, jeśli korzystasz z przeglądarki Chrome).
Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.
Wskazówka: otwórz karty obok siebie w osobnych oknach.
Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta.
-
W razie potrzeby skopiuj nazwę użytkownika znajdującą się poniżej i wklej ją w oknie logowania.
{{{user_0.username | "Username"}}}
Nazwę użytkownika znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
-
Skopiuj podane niżej hasło i wklej je w oknie powitania.
{{{user_0.password | "Password"}}}
Hasło znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
Ważne: musisz użyć danych logowania podanych w module. Nie używaj danych logowania na swoje konto Google Cloud.
Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami.
-
Na kolejnych stronach wykonaj następujące czynności:
- Zaakceptuj Warunki korzystania z usługi.
- Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
- Nie rejestruj się w bezpłatnych wersjach próbnych.
Poczekaj, aż na karcie otworzy się konsola Google Cloud.
Uwaga: aby uzyskać dostęp do produktów i usług Google Cloud, kliknij Menu nawigacyjne lub wpisz nazwę usługi albo produktu w polu Szukaj.
Aktywowanie Cloud Shell
Cloud Shell to maszyna wirtualna oferująca wiele narzędzi dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud. Dzięki wierszowi poleceń Cloud Shell zyskujesz dostęp do swoich zasobów Google Cloud.
-
Kliknij Aktywuj Cloud Shell
na górze konsoli Google Cloud.
-
Kliknij te okna:
- Przejdź przez okno z informacjami o Cloud Shell.
- Zezwól Cloud Shell na używanie Twoich danych logowania w celu wywoływania interfejsu Google Cloud API.
Po połączeniu użytkownik od razu jest uwierzytelniony. Uruchomi się Twój projekt o identyfikatorze Project_ID . Dane wyjściowe zawierają wiersz z zadeklarowanym identyfikatorem Project_ID dla tej sesji:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
to narzędzie wiersza poleceń Google Cloud. Jest ono już zainstalowane w Cloud Shell i obsługuje funkcję autouzupełniania po naciśnięciu tabulatora.
- (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list
- Kliknij Autoryzuj.
Dane wyjściowe:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
gcloud config list project
Dane wyjściowe:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Uwaga: pełną dokumentację gcloud
w Google Cloud znajdziesz w opisie gcloud CLI.
Zadanie 1. Tworzenie środowiska wirtualnego
Do oddzielenia instalacji pakietów od systemu są używane wirtualne środowiska języka Python.
- Zainstaluj środowisko
virtualenv
:
sudo apt-get install -y virtualenv
- Skompiluj środowisko wirtualne:
python3 -m venv venv
- Aktywuj środowisko wirtualne:
source venv/bin/activate
Zadanie 2. Instalowanie biblioteki klienta
- Uruchom to polecenie, aby zainstalować bibliotekę klienta:
pip install --upgrade google-cloud-pubsub
- Sklonuj repozytorium GitHub, aby pobrać przykładowy kod:
git clone https://github.com/googleapis/python-pubsub.git
- Przejdź do katalogu:
cd python-pubsub/samples/snippets
Zadanie 3. Pub/Sub – podstawy
Pub/Sub to globalna usługa do asynchronicznego przesyłania wiadomości. W kontekście usługi Pub/Sub często pojawiają się 3 terminy: tematy, publikowanie i subskrybowanie.
Temat to udostępniony ciąg znaków, który umożliwia aplikacjom łączenie się ze sobą przez wspólny wątek.
Aplikacje publikujące umieszczają (lub publikują) wiadomość w temacie Pub/Sub. Z kolei aplikacje subskrybujące tworzą subskrypcje danego wątku, które umożliwiają pobieranie wiadomości z tematu lub konfigurowanie webhooków na potrzeby subskrypcji typu push. Każdy subskrybent musi potwierdzić każdą wiadomość w określonym przedziale czasu.
Podsumowując, publikujący tworzy i wysyła wiadomości, które trafiają do tematu, a subskrybent tworzy subskrypcję tematu, która umożliwia otrzymywanie z niego wiadomości.
Pub/Sub w Google Cloud
Usługa Pub/Sub jest już zainstalowana w Cloud Shell, dlatego rozpoczęcie pracy nie wymaga żadnej instalacji ani konfiguracji. W tym module za pomocą języka Python utworzysz temat i subskrypcję, a następnie wyświetlisz wiadomość. Wiadomość opublikujesz w tym temacie za pomocą polecenia gcloud.
Zadanie 4. Tworzenie tematu
Aby opublikować dane w Pub/Sub, musisz utworzyć temat, a następnie skonfigurować aplikację publikującą dla tego tematu.
- W Cloud Shell Twój identyfikator projektu powinien zostać automatycznie zapisany w zmiennej środowiskowej
GOOGLE_CLOUD_PROJECT
:
echo $GOOGLE_CLOUD_PROJECT
- Sprawdź, czy dane wyjściowe są takie same jak identyfikator projektu podany w SZCZEGÓŁACH POŁĄCZENIA.
publisher.py
to skrypt, który pokazuje, jak wykonywać podstawowe operacje na tematach za pomocą interfejsu Cloud Pub/Sub API. Wyświetl zawartość skryptu publisher:
cat publisher.py
Uwaga: skrypt python-pubsub/samples/snippets/publisher.py
możesz też wyświetlić za pomocą edytorów powłoki, które są zainstalowane w Cloud Shell, takich jak nano lub vim. Możesz również użyć edytora kodu Cloud Shell.
- Informacje o skrypcie publisher uzyskasz po uruchomieniu tego polecenia:
python publisher.py -h
Przykładowe dane wyjściowe:
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
- Uruchom skrypt publisher, aby utworzyć temat Pub/Sub:
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic
Przykładowe dane wyjściowe:
Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"
Testowanie ukończonego zadania
Kliknij Sprawdź postępy, aby zobaczyć stan realizacji zadania. Jeśli udało Ci się utworzyć temat Cloud Pub/Sub, wyświetli się wynik.
Utworzenie tematu
- To polecenie zwraca listę wszystkich tematów Pub/Sub w danym projekcie:
python publisher.py $GOOGLE_CLOUD_PROJECT list
Przykładowe dane wyjściowe:
name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"
Utworzony przed chwilą temat możesz też wyświetlić w konsoli Google Cloud.
- Otwórz Menu nawigacyjne > Pub/Sub > Tematy.
Zobaczysz temat MyTopic
.
Zadanie 5. Tworzenie subskrypcji
- Utwórz subskrypcję Pub/Sub tematu za pomocą skryptu
subscriber.py
:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub
Testowanie ukończonego zadania
Kliknij Sprawdź postępy, aby zobaczyć stan realizacji zadania. Jeśli udało Ci się utworzyć subskrypcję Cloud Pub/Sub, wyświetli się wynik.
Utworzenie subskrypcji
- To polecenie zwraca listę subskrybentów w danym projekcie:
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project
Zobaczysz tylko jedną subskrypcję, ponieważ tylko jedna subskrypcja została utworzona.
Przykładowe dane wyjściowe:
projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
-
Sprawdź subskrypcję, którą udało Ci się przed chwilą utworzyć w konsoli. W panelu po lewej stronie kliknij Subskrypcje. Powinna się wyświetlić nazwa subskrypcji i inne szczegóły.
-
Informacje o skrypcie subscriber
uzyskasz po uruchomieniu tego polecenia:
python subscriber.py -h
Dane wyjściowe:
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 Aktualizuje istniejący adres URL punktu końcowego „push” subskrypcji Pub/Sub. 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
Zadanie 6. Publikowanie wiadomości
Po skonfigurowaniu tematu MyTopic
i subskrypcji MySub
tematu MyTopic
opublikuj wiadomość w temacie MyTopic
za pomocą poleceń gcloud
.
- Opublikuj wiadomość „Cześć” w temacie
MyTopic
:
gcloud pubsub topics publish MyTopic --message "Cześć"
- Opublikuj jeszcze kilka wiadomości w temacie
MyTopic
– uruchom w tym celu te polecenia (zastępując ciąg znaków <TWOJE_IMIĘ> swoim imieniem, a ciąg znaków <JEDZENIE> swoją ulubioną potrawą):
gcloud pubsub topics publish MyTopic --message "Osobą publikującą wiadomość jest <TWOJE_IMIĘ>"
gcloud pubsub topics publish MyTopic --message "Ulubione jedzenie osoby publikującej wiadomość to <JEDZENIE>"
gcloud pubsub topics publish MyTopic --message "Osoba publikująca wiadomość uważa, że Pub/Sub jest super"
Zadanie 7. Wyświetlanie wiadomości
Po opublikowaniu wiadomości w temacie MyTopic pobierz je i wyświetl, korzystając z subskrypcji MySub.
- Pobierz wiadomość z tematu MyTopic za pomocą subskrypcji MySub:
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub
Przykładowe dane wyjściowe:
Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
Received message: Message {
data: 'Osoba publikująca wiadomość uważa, że Pub/Sub jest super'
attributes: {}
}
Received message: Message {
data: 'Cześć'
attributes: {}
}
Received message: Message {
data: "Osobą publikującą wiadomość jest Jan"
attributes: {}
}
Received message: Message {
data: 'Ulubione jedzenie osoby publikującej wiadomość to ser'
attributes: {}
}
- Kliknij Ctrl + C, aby przestać nasłuchiwać.
Zadanie 8. Sprawdź swoją wiedzę
Poniżej znajdziesz pytania jednokrotnego wyboru, które pomogą Ci utrwalić wiedzę zdobytą w tym module. Odpowiedz na nie najlepiej, jak potrafisz.
Gratulacje!
Udało Ci się wykorzystać Pythona, aby utworzyć temat Pub/Sub, opublikować wiadomość w temacie, utworzyć subskrypcję, a następnie użyć jej do pobrania danych z tematu.
Kolejne kroki / Więcej informacji
Pub/Sub Lite to usługa strefowa dla systemów komunikacji, w których wzorce ruchu są przewidywalne. Uzupełnia Pub/Sub. Jeśli publikujesz od 1 MiB do 1 GiB wiadomości na sekundę, Pub/Sub Lite będzie niedrogą opcją do pozyskiwania dużej liczby zdarzeń. Wypróbuj Pub/Sub Lite w tym module:
Ten moduł należy do serii modułów Qwik Start. Opracowaliśmy je, aby dać Ci przedsmak bogactwa funkcji dostępnych w Google Cloud. Wyszukaj „Qwik Start” w katalogu Google Cloud Skills Boost i znajdź kolejny interesujący Cię moduł.
Szkolenia i certyfikaty Google Cloud
…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.
Ostatnia aktualizacja instrukcji: 13 lutego 2024 r.
Ostatni test modułu: 22 września 2023 r.
Copyright 2025 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.