arrow_back

Cloud Endpoints: Qwik Start

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Cloud Endpoints: Qwik Start

Lab 1 godz. universal_currency_alt 1 punkt show_chart Wprowadzające
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP164

Moduły Google Cloud do samodzielnego ukończenia

Opis

W tym module wdrożysz przykładowy interfejs API, używając Cloud Endpoints – zestawu narzędzi do generowania interfejsów API z aplikacji App Engine. Przykładowy kod będzie obejmował:

  • interfejs API typu REST, do którego można wykonać zapytanie o nazwę lotniska na podstawie jego trzyliterowego kodu IATA (np. SFO, JFK, AMS);
  • skrypt przesyłający konfigurację interfejsu API do Cloud Endpoints;
  • skrypt wdrażający elastyczny backend Google App Engine do hostowania przykładowego interfejsu API.

Po wysłaniu żądań do przykładowego interfejsu API można wyświetlić wykresy i logi działań Cloud Endpoints. Są to narzędzia umożliwiające monitorowanie interfejsów API i analizowanie ich wykorzystania.

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 lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie oddatkowych opłat na koncie osobistym.
  • Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: jeśli masz już osobiste konto lub projekt w Google Cloud, nie używaj go w tym module, aby uniknąć naliczania opłat na koncie.

Rozpoczynanie modułu i logowanie się w konsoli Google Cloud

  1. Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się wyskakujące okienko, 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;
    • czasem, który Ci pozostał;
    • tymczasowymi danymi logowania, których musisz użyć w tym module;
    • innymi informacjami potrzebnymi do ukończenia modułu.
  2. Kliknij Otwórz konsolę Google. 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.
  3. W razie potrzeby skopiuj nazwę użytkownika z panelu Szczegóły modułu i wklej ją w oknie logowania. Kliknij Dalej.

  4. Skopiuj hasło z panelu Szczegóły modułu i wklej je w oknie powitania. Kliknij Dalej.

    Ważne: musisz użyć danych logowania z panelu po lewej stronie, a nie danych logowania Google Cloud Skills Boost. Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami.
  5. 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 wyświetlić menu z listą produktów i usług Google Cloud Console, w lewym górnym rogu kliknij menu nawigacyjne. Ikona menu nawigacyjnego

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.

  1. Kliknij Aktywuj Cloud Shell Ikona aktywowania Cloud Shell na górze konsoli Google Cloud.

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 YOUR_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.

  1. (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list
  1. Kliknij Autoryzuj.

  2. Dane wyjściowe powinny wyglądać tak:

Dane wyjściowe:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
gcloud config list project

Dane wyjściowe:

[core] project = <project_ID>

Przykładowe dane wyjściowe:

[core] project = qwiklabs-gcp-44776a13dea667a6 Uwaga: pełną dokumentację gcloud w Google Cloud znajdziesz w opisie narzędzia wiersza poleceń gcloud.

Zadanie 1. Uzyskiwanie przykładowego kodu

  1. Aby uzyskać przykładowy interfejs API i skrypty, wprowadź w Cloud Shell następujące polecenie:
gsutil cp gs://spls/gsp164/endpoints-quickstart.zip . unzip endpoints-quickstart.zip
  1. Zmień katalog na zawierający przykładowy kod:
cd endpoints-quickstart

Zadanie 2. Wdrażanie konfiguracji Endpoints

Do opublikowania interfejsu API typu REST w Endpoints wymagany jest plik konfiguracji OpenAPI opisujący interfejs API. Używany w module przykładowy interfejs API jest dostarczany ze wstępnie skonfigurowanym plikiem OpenAPI o nazwie openapi.yaml.

Do tworzenia interfejsów API i usług oraz zarządzania nimi Endpoints używa Service Management – usługi infrastruktury Google Cloud. Aby użyć Endpoints do zarządzania interfejsem API, wdrożysz konfigurację OpenAPI interfejsu API w Service Management.

Aby wdrożyć konfigurację Endpoints…

  1. W katalogu endpoints-qwikstart wpisz:
cd scripts
  1. Uruchom następujący skrypt uwzględniony w przykładzie:
./deploy_api.sh

Cloud Endpoints używa pola host w pliku konfiguracji OpenAPI do identyfikacji usługi. Skrypt deploy_api.sh ustawia identyfikator projektu Cloud jako część nazwy skonfigurowanej w polu host. (W przypadku przygotowania pliku konfiguracji OpenAPI dla własnej usługi musisz zrobić to ręcznie).

Następnie skrypt wdraża konfigurację OpenAPI w usłudze Service Management, używając polecenia: gcloud endpoints services deploy openapi.yaml

Tworząc i konfigurując usługę, Service Management wysyła do konsoli niektóre dane. Można bezpiecznie zignorować ostrzeżenia dotyczące ścieżek w openapi.yaml, gdzie nie jest wymagany klucz API. Po pomyślnym ukończeniu konfiguracji widoczny jest wiersz podobny do tego niżej, z identyfikatorem konfiguracji usługi i jej nazwą.

Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Wdrożenie konfiguracji Endpoints

Zadanie 3. Wdrażanie backendu interfejsu API

Masz już wdrożoną konfigurację OpenAPI w usłudze Service Management, jednak nie wdrożyłeś(-aś) jeszcze kodu obsługującego backend interfejsu API. Uwzględniony w przykładzie poniżej skrypt deploy_app.sh tworzy elastyczne środowisko App Engine hostujące backend interfejsu API, a następnie wdraża interfejs API w App Engine.

  • Aby wdrożyć backend interfejsu API, upewnij się, że pracujesz z poziomu katalogu endpoints-quickstart/scripts. Następnie uruchom ten skrypt:
./deploy_app.sh

Skrypt uruchomi polecenie gcloud app create --region="$REGION", aby utworzyć elastyczne środowisko App Engine w regionie .

Tworzenie backendu elastycznego środowiska App Engine trwa kilka minut.

Uwaga: jeśli pojawi się komunikat ERROR: NOT_FOUND: Unable to retrieve P4SA: from GAIA, uruchom skrypt deploy_app.sh jeszcze raz.

Gdy utworzysz środowisko App Engine w Cloud Shell, wyświetli się następująca informacja:

Success! The app is now created. Please use `gcloud app deploy` to deploy your first app.

Skrypt kontynuuje pracę, uruchamiając polecenie gcloud app deploy, żeby wdrożyć przykładowy interfejs API w App Engine.

W Cloud Shell zostanie wyświetlony następujący wiersz:

Deploying ../app/app_template.yaml...You are about to deploy the following services:

Wdrożenie interfejsu API w App Engine trwa kilka minut. Po pomyślnym wdrożeniu interfejsu API w App Engine wyświetli się wiersz podobny do tego:

Deployed service [default] to [https://example-project.appspot.com]

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Wdrożenie backendu interfejsu API

Zadanie 4. Wysyłanie żądań do interfejsu API

  1. Po wdrożeniu przykładowego interfejsu API możesz wysyłać do niego żądania, uruchamiając następujący skrypt:
./query_api.sh

Skrypt powtarza polecenie curl, którego używa w celu wysłania żądania do interfejsu API, a następnie wyświetla wynik. W Cloud Shell wyświetli się informacja podobna do tej:

curl "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport

Interfejs API oczekuje jednego parametru zapytania, iataCode, ustawionego na prawidłowy kod IATA lotniska, taki jak SEA lub JFK.

  1. Aby przetestować działanie, uruchom w Cloud Shell następujący przykład:
./query_api.sh JFK

Udało Ci się wdrożyć i przetestować interfejs API w Cloud Endpoints.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Wysłanie żądań do interfejsu API

Zadanie 5. Śledzenie aktywności interfejsu API

Po wdrożeniu interfejsów API za pomocą Cloud Endpoints możesz monitorować w konsoli Cloud kluczowe wskaźniki operacji i analizować za pomocą usługi Cloud Logging zachowanie użytkowników oraz dane dotyczące użytkowania:

  1. Aby wypełnić wykresy i logi, uruchom w Cloud Shell ten skrypt generowania ruchu:
./generate_traffic.sh Uwaga: ten skrypt generuje żądania w pętli i automatycznie wyłącza się po upływie 5 minut. Aby szybciej zakończyć działanie skryptu, naciśnij w Cloud Shell klawisze CTRL+C.
  1. W konsoli wybierz Menu nawigacyjne > Punkty końcowe > Usługi i kliknij usługę Airport Codes, aby zobaczyć wykresy aktywności dotyczące Twojej usługi. Odzwierciedlenie żądań na wykresach zajmuje kilka chwil. Czekając na wyświetlenie danych, możesz wykonać tę czynność:
  • Jeśli panel boczny Uprawnienia nie jest otwarty, kliknij Pokaż panel uprawnień. Panel Uprawnienia umożliwia kontrolę osób mających dostęp do interfejsu API oraz poziomu dostępu.

  • Kliknij kartę Historia wdrożeń. Wyświetla ona historię wdrożeń interfejsu API, w tym informacje o czasie wdrożenia i osobie wdrażającej zmianę.

  • Kliknij kartę Przegląd. Tutaj będzie widoczny ruch przychodzący. Gdy od uruchomienia skryptu generowania ruchu minie minuta, przewiń w dół, aby wyświetlić 3 wiersze na wykresie Całkowity czas oczekiwania (50, 95 i 99 centyl). Te dane umożliwiają szybkie oszacowanie czasu odpowiedzi.

  1. Na dole wykresów Endpoints, w sekcji Metoda, kliknij link Wyświetl logi dotyczący metody GET/airportName. Na stronie Przeglądarka logów wyświetlone są logi żądania dla interfejsu API.

  2. Aby zatrzymać wykonywanie skryptu, naciśnij w Cloud Shell klawisze CTRL+C.

Zadanie 6. Dodawanie limitu do interfejsu API

Uwaga: jest to wersja beta funkcji limitów. Ta funkcja może ulec zmianie w sposób niezapewniający zgodności wstecznej. Nie podlega żadnej gwarancji jakości usług ani żadnym zasadom wycofywania.

Cloud Endpoints umożliwia ustawianie limitów pozwalających na kontrolę częstotliwości wywoływania interfejsu API przez aplikacje. Limity pozwalają na zabezpieczenie interfejsu API przed nadmiernym wykorzystaniem przez pojedynczego klienta.

  1. Wdróż konfigurację Endpoints obejmującą limit:

    ./deploy_api.sh ../openapi_with_ratelimit.yaml
  2. Wdróż ponownie aplikację, aby zastosować nową konfigurację Endpoints (może to potrwać kilka minut):

    ./deploy_app.sh

    Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Dodanie limitu do interfejsu API

  3. W konsoli kliknij Menu nawigacyjne > Interfejsy API i usługi > Dane logowania.

  4. Kliknij Utwórz dane logowania i wybierz opcję Klucz interfejsu API. Na ekranie zostanie utworzony nowy klucz interfejsu API.

  5. Kliknij ikonę Kopiuj do schowka, aby skopiować klucz.

  6. W Cloud Shell wpisz podany niżej kod. Zastąp YOUR-API-KEY utworzonym przed chwilą kluczem.

    export API_KEY=YOUR-API-KEY
  7. Wyślij do interfejsu API żądanie, używając utworzonej właśnie zmiennej klucza interfejsu API:

    ./query_api_with_key.sh $API_KEY

    W konsoli zostanie wyświetlona informacja podobna do tej:

    curl -H 'x-api-key: AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB' "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport
  8. Dla interfejsu API obowiązuje obecnie limit wynoszący 5 żądań na sekundę. Aby wysłać ruch do interfejsu API i uaktywnić limit, uruchom następujące polecenie:

    ./generate_traffic_with_key.sh $API_KEY
  9. Gdy od uruchomienia skryptu minie 5–10 sekund, naciśnij w Cloud Shell klawisze CTRL+C, aby zatrzymać wykonywanie skryptu.

  10. Wyślij do interfejsu API następne uwierzytelnione żądanie:

    ./query_api_with_key.sh $API_KEY

    W konsoli zostanie wyświetlona informacja podobna do tej:

{ "code": 8, "message": "Insufficient tokens for quota 'airport_requests' and limit 'limit-on-airport-requests' of service 'example-project.appspot.com' for consumer 'api_key:AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB'.", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "stackEntries": [], "detail": "internal" } ] }

W przypadku otrzymania innej odpowiedzi spróbuj uruchomić skrypt generate_traffic_with_key.sh jeszcze raz, a następnie ponów próbę.

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Utworzenie klucza interfejsu API i przetestowanie limitu przez wysyłanie żądań

Gratulacje!

Gratulacje! Udało Ci się ograniczyć częstotliwość wykorzystania interfejsu API. Możesz również ustawiać zróżnicowane limity dla różnych metod interfejsu API, tworzyć wiele rodzajów limitów i śledzić wykorzystanie interfejsów API przez konsumentów.

Przejdź do kolejnego modułu

Ten moduł należy również do serii modułów Qwik Starts. Opracowano je tak, aby dać Ci przedsmak bogactwa funkcji dostępnych w Google Cloud. Wyszukaj „Qwik Starts” w katalogu modułów i znajdź kolejny interesujący Cię moduł.

Kolejne kroki / Więcej informacji

Więcej informacji na temat limitów znajdziesz tutaj (dokumentacja jest w języku angielskim):

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: 22 listopada 2023 r.

Ostatni test modułu: 22 listopada 2023 r.

Copyright 2024 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.