1. Wprowadzenie
Ostatnia aktualizacja: 21 czerwca 2023 r.
Alerty dotyczące kontroli dostępności
Alerty dotyczące kontroli dostępności pozwalają szybko identyfikować i rozwiązywać problemy, które mogą mieć wpływ na Twoje usługi. Dzięki powiadomieniom o awariach możesz podjąć działania, które zminimalizują ich wpływ na użytkowników i klientów.
Sprawdzanie dostępności odbywa się w interwałach, z których najkrótszy wynosi 60 sekund. Jeśli potrzebujesz większej szczegółowości niż 60 sekund, możesz też monitorować kody błędów jako zdarzenia dynamiczne za pomocą alertów opartych na logach, które będą dodatkowym wskaźnikiem niedostępności. Jeśli akceptujesz interwał 60 sekund lub dłuższy, kontrole dostępności to łatwy sposób na pomiar usługi bez konieczności dodatkowej konfiguracji.
Jeśli usługa jest niedostępna, kontrola dostępności wykryje problem, nawet jeśli nie ma ruchu. Na ruch mogą natomiast wpływać takie czynniki jak konserwacja, uaktualnienia, a nawet czynniki zewnętrzne, np. zła pogoda lub wydarzenia sportowe, które odciągają uwagę użytkowników.
Więcej informacji o tym, kiedy używać kontroli dostępności, znajdziesz w artykule Zapewnianie dostępności zasobów Google Cloud.
Tematy Pub/Sub jako kanał powiadomień o alertach
Temat Pub/Sub może być używany jako kanał powiadomień Google Cloud Monitoring do wysyłania alertów do subskrypcji Pub/Sub. Umożliwia to integrację alertów Cloud Monitoring z innymi systemami, w tym z usługami powiadomień innych firm.
Aby użyć tematu Pub/Sub jako kanału powiadomień, musisz najpierw utworzyć temat Pub/Sub i subskrypcję Pub/Sub. Następnie musisz utworzyć kanał powiadomień Cloud Monitoring, który używa tematu Pub/Sub jako miejsca docelowego.
Gdy alert zostanie wywołany, Cloud Monitoring wyśle wiadomość do tematu Pub/Sub. Subskrybent subskrypcji Pub/Sub może następnie przetworzyć wiadomość i podjąć odpowiednie działania.
Co utworzysz
W tym ćwiczeniu wdrożysz aplikację, utworzysz temat Pub/Sub i utworzysz alert kontroli dostępności dla aplikacji, który będzie używać tematu Pub/Sub jako kanału powiadomień.
Czego się nauczysz
- Jak utworzyć temat Pub/Sub
- Jak utworzyć kontrolę dostępności i alert
To ćwiczenie koncentruje się na tworzeniu alertu dotyczącego kontroli dostępności. Nieistotne koncepcje i kod aplikacji zostały zamaskowane. Można je po prostu skopiować i wkleić.
Czego potrzebujesz
- Konto Google Cloud z uprawnieniami do:
- Wdrażanie aplikacji Cloud Run
- Tworzenie tematów Pub/Sub
- Utwórz kontrole dostępności
- Tworzenie alertów
2. Przygotowania
Wybieranie lub tworzenie projektu Google Cloud
Aby wybrać istniejący projekt, użyj menu:

Aby utworzyć nowy projekt w Google Cloud, wykonaj te czynności:
- Otwórz konsolę Google Cloud Platform.
- Kliknij przycisk Utwórz projekt.
- Wpisz nazwę projektu.
- Wybierz konto rozliczeniowe projektu.
- Kliknij przycisk Utwórz.
Projekt zostanie utworzony i wyświetli się jego panel. Następnie możesz zacząć korzystać z usług Google Cloud.
Oto dodatkowe informacje o poszczególnych krokach:
- Nazwa: nazwa projektu musi być unikalna w obrębie organizacji.
- Konto rozliczeniowe: możesz użyć istniejącego konta rozliczeniowego lub utworzyć nowe.
- Utwórz: po wpisaniu wszystkich wymaganych informacji kliknij przycisk Utwórz, aby utworzyć projekt.
Więcej informacji znajdziesz w dokumentacji Google Cloud dotyczącej tworzenia projektów.
3. Wdrażanie aplikacji API
Czego dotyczy przykładowa aplikacja lub interfejs API?
Nasza aplikacja to prosta aplikacja Inventory API, która udostępnia punkt końcowy interfejsu API REST z kilkoma operacjami służącymi do wyświetlania listy produktów i pobierania liczby produktów w magazynie.
Po wdrożeniu interfejsu API i przy założeniu, że jest on hostowany pod adresem https://<somehost>, możemy uzyskać dostęp do jego punktów końcowych w ten sposób:
https://<somehost>/inventory
Wyświetli to listę wszystkich produktów z poziomami zapasów.
https://<somehost>/inventory/{productid}
Spowoduje to utworzenie pojedynczego rekordu z identyfikatorem produktu i poziomem zapasów dostępnych dla tego produktu.
Zwrócone dane odpowiedzi są w formacie JSON.
Uwaga: ta aplikacja interfejsu API służy wyłącznie do celów demonstracyjnych i nie stanowi bezpiecznej ani niezawodnej implementacji interfejsu API. Ma to być szybka aplikacja, która pozwoli nam poznać główny cel tego modułu, czyli operacje w Google Cloud.
Przykładowe dane oraz żądanie i odpowiedź interfejsu API
Aplikacja nie jest oparta na bazie danych w backendzie, aby uprościć jej działanie. Zawiera 3 przykładowe identyfikatory produktów i ich poziomy zapasów.
Identyfikator produktu | Poziom zapasów |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Przykładowe żądanie do interfejsu API i odpowiedź są widoczne poniżej:
Żądanie do interfejsu API | Odpowiedź interfejsu API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Klonowanie repozytorium
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym module praktycznym będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli GCP kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno wyświetlić się coś takiego:

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać w przeglądarce.
Konfigurowanie gcloud
W Cloud Shell ustaw identyfikator projektu i zapisz go jako zmienną PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Teraz uruchom to polecenie:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
W tym folderze zostanie utworzony folder o nazwie cloud-code-sample-repository.
(Opcjonalnie) Uruchom aplikację w Cloud Shell
Aby uruchomić aplikację lokalnie, wykonaj te czynności:
- W terminalu przejdź do wersji interfejsu API w języku Python, wpisując to polecenie:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- W terminalu wpisz to polecenie (w momencie pisania tego artykułu w Cloud Shell jest zainstalowany Python 3.9.x, więc użyjemy wersji domyślnej): Jeśli planujesz uruchomić go lokalnie na laptopie, możesz użyć Pythona 3.8 lub nowszego:
$ python app.py
- Aby uruchomić serwer Pythona lokalnie, możesz wykonać to polecenie.

Kliknij Podejrzyj na porcie 8080. 5. Otworzy się okno przeglądarki. Pojawi się błąd 404, ale to nic złego. Zmodyfikuj adres URL, aby po nazwie hosta zawierał tylko /inventory.
Na przykład na moim komputerze wygląda to tak:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Wyświetli to listę produktów w asortymencie, jak opisano wcześniej:

- Możesz teraz zatrzymać serwer, przechodząc do terminala i naciskając Ctrl-C.
Wdrażanie aplikacji
Teraz wdrożymy tę aplikację API w Cloud Run. W tym procesie użyto klienta wiersza poleceń gcloud do uruchomienia polecenia wdrażającego kod w usłudze Cloud Run.
W terminalu wpisz to polecenie gcloud:
$ gcloud run deploy --source .
Zadamy Ci kilka pytań. Niektóre z nich znajdziesz poniżej:
- Nazwa usługi (python-flask-api): możesz użyć tej domyślnej nazwy lub wybrać inną, np. my-inventory-api.
- Interfejs API [run.googleapis.com] nie jest włączony w projekcie [613162942481]. Czy chcesz włączyć i spróbować ponownie (może to potrwać kilka minut)? (y/N)? T
- Podaj region: wybierz 31 (us-west-1)
- Interfejs API [artifactregistry.googleapis.com] nie jest włączony w projekcie [613162942481]. Czy chcesz włączyć i spróbować ponownie (może to potrwać kilka minut)? (y/N)? T
- Wdrażanie z kodu źródłowego wymaga repozytorium Dockera w Artifact Registry do przechowywania skompilowanych kontenerów. W regionie [us-west1] zostanie utworzone repozytorium o nazwie [cloud-run-source-deploy].
- Czy chcesz kontynuować (T/n)? T
- Zezwalać na nieuwierzytelnione wywołania [my-inventory-api] (T/N)? T
W końcu rozpocznie się proces pobierania kodu źródłowego, umieszczania go w kontenerze, przesyłania do Artifact Registry, a następnie wdrażania usługi i wersji Cloud Run. Zachowaj cierpliwość (proces może potrwać 3–4 minuty). Po jego zakończeniu zobaczysz adres URL usługi.
Przykładowe uruchomienie pokazano poniżej:

Testowanie aplikacji
Po wdrożeniu aplikacji w Cloud Run możesz uzyskać do niej dostęp w ten sposób:
- Zapisz adres URL usługi z poprzedniego kroku. Na przykład w moim przypadku jest to
https://my-inventory-api-bt2r5243dq-uw.a.run.app. Nazwijmy to<SERVICE_URL>. - Otwórz przeglądarkę i uzyskaj dostęp do tych 3 adresów URL punktów końcowych interfejsu API:
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
Powinno być zgodne ze specyfikacjami, które podaliśmy w poprzedniej sekcji z przykładowym żądaniem do interfejsu API i przykładową odpowiedzią.
Pobieranie szczegółów usługi z Cloud Run
Wdrożyliśmy naszą usługę API w Cloud Run, bezserwerowym środowisku obliczeniowym. W dowolnym momencie możemy otworzyć usługę Cloud Run w konsoli Google Cloud.
W menu głównym otwórz Cloud Run. Wyświetli się lista usług działających w Cloud Run. Powinna być widoczna wdrożona przed chwilą usługa. W zależności od wybranej nazwy powinien pojawić się ekran podobny do tego:

Kliknij nazwę usługi, aby wyświetlić szczegóły. Szczegóły próbki są widoczne poniżej:

Zwróć uwagę na adres URL, który jest po prostu adresem URL usługi. Możesz go wpisać w przeglądarce i uzyskać dostęp do interfejsu Inventory API, który właśnie wdrożyliśmy. Sprawdź dane i inne szczegóły.
Zacznijmy od pakietu operacyjnego Google Cloud.
4. Tworzenie tematu Pub/Sub do odbierania powiadomień o alercie
Aby utworzyć temat Pub/Sub, wykonaj te czynności w konsoli Google Cloud:
- W polu wyszukiwania wpisz Pub/Sub i otwórz Pub/Sub.

- Jeśli nie jesteś jeszcze na karcie Tematy, kliknij ją.

- Kliknij przycisk Utwórz temat.

- Wpisz nazwę tematu.

- Kliknij przycisk Utwórz.

- Skopiuj nazwę tematu, klikając przycisk z ikoną kopiowania. Będzie Ci potrzebny w następnej sekcji.

5. Tworzenie kontroli dostępności
Aby utworzyć kontrolę dostępności aplikacji Google Cloud Run:
- Otwórz konsolę Google Cloud Platform.
- Kliknij kartę Monitorowanie.
- Kliknij kartę Kontrole dostępności.
- U góry strony kliknij przycisk Utwórz kontrolę dostępności.

- Użyj następujących wartości:
- Protokół : HTTPS
- Typ zasobu : URL
- Nazwa hosta : wpisz część adresu URL usługi Cloud Run bez https. Przykładowy ekran znajdziesz poniżej. Jeśli nie masz pewności, jaki jest adres URL usługi, otwórz Cloud Run w głównej konsoli Google Cloud i przejdź do szczegółów usługi Cloud Run, jak opisano wcześniej, aby uzyskać adres URL usługi.
- Ścieżka : healthy
- Częstotliwość kontroli: 1 minuta

- Kliknij Dalej.
- Włącz opcję Dopasowanie zawartości jest włączone.
- W sekcji Response Content (Treść odpowiedzi) wpisz „All Izz Well”. Ten ciąg znaków jest już w aplikacji, gdy wysyła ona pełne odpowiedzi.
- Keep

- W przypadku opcji Dopuszczalny kod odpowiedzi HTTP wybierz Klasy kodów odpowiedzi i jako jedyną klasę kodu odpowiedzi wybierz 2xx. W ten sposób ciąg znaków będzie sprawdzany tylko w przypadku kodów odpowiedzi z zakresu 2xx, a wszystkie inne kody będą automatycznie uznawane za nieprawidłowe.

- Kliknij Dalej.
- Wybierz temat Cloud Pub/Sub jako kanał powiadomień i kliknij OK.

- Kliknij Dalej.
- Dodaj rozpoznawalny tytuł

- Kliknij przycisk Testuj.

- Sprawdź i kliknij przycisk Utwórz, gdy wszystko będzie gotowe.

Kontrola dostępności zostanie utworzona i rozpocznie monitorowanie aplikacji Cloud Run. Stan kontroli dostępności możesz sprawdzić na karcie Kontrole dostępności.

6. Gratulacje
Gratulacje! Udało Ci się skonfigurować kontrolę dostępności tak, aby wysyłała alerty do Pub/Sub.