arrow_back

Wprowadzenie do Cloud Run

Sprawdź swoją wiedzę i podziel się nią ze społecznością.
done
Zyskaj dostęp do ponad 700 praktycznych modułów oraz odznak umiejętności i szkoleń

Wprowadzenie do Cloud Run

Moduł 1 godz. universal_currency_alt Punkty: 5 show_chart Wprowadzające
info Ten moduł może zawierać narzędzia AI, które ułatwią Ci naukę.
Sprawdź swoją wiedzę i podziel się nią ze społecznością.
done
Zyskaj dostęp do ponad 700 praktycznych modułów oraz odznak umiejętności i szkoleń

Opis

Logo Cloud Run

Cloud Run to zarządzana platforma obliczeniowa, która umożliwia uruchamianie bezstanowych kontenerów wywoływanych przez żądania HTTP. Cloud Run jest rozwiązaniem bezserwerowym, które nie wymaga zarządzania infrastrukturą, dzięki czemu możesz skupić się na tym, co najważniejsze, czyli tworzeniu świetnych aplikacji.

Cloud Run opiera się na platformie Knative, co pozwala uruchamiać w pełni zarządzane kontenery w Cloud Run lub kontenery w klastrze Google Kubernetes Engine przy użyciu Cloud Run w GKE.

Celem tego modułu jest utworzenie obrazu prostej, skonteneryzowanej aplikacji i wdrożenie jej w Cloud Run.

Cele

W tym module dowiesz się, jak:

  • włączyć interfejs Cloud Run API;
  • utworzyć prostą aplikację Node.js, którą można wdrożyć jako bezserwerowy i bezstanowy kontener;
  • skonteneryzować aplikację i przesłać ją do Artifact Registry;
  • wdrożyć skonteneryzowaną aplikację w Cloud Run;
  • usunąć niepotrzebne obrazy, żeby uniknąć dodatkowych opłat za miejsce na dane.

Konfiguracja i wymagania

W przypadku każdego modułu otrzymujesz bezpłatnie i na określony czas nowy projekt Google Cloud oraz zbiór zasobów.

  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 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.
  2. 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.
  3. 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.

  4. Kliknij Dalej.

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

  6. 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.
  7. 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, w lewym górnym rogu kliknij Menu nawigacyjne. Ikona menu nawigacyjnego

Aktywowanie Google Cloud Shell

Google 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ń Google Cloud Shell zyskujesz dostęp do swoich zasobów Google Cloud.

  1. Na pasku narzędzi w prawym górnym rogu w konsoli Cloud kliknij przycisk Otwórz Cloud Shell.

    Zaznaczona ikona Cloud Shell

  2. Kliknij Dalej.

Uzyskanie dostępu do środowiska i połączenie się z nim może zająć kilka chwil. Po połączeniu użytkownik od razu jest uwierzytelniony. Uruchomi się Twój projekt o identyfikatorze PROJECT_ID. Na przykład:

Zaznaczony identyfikator projektu w terminalu Cloud Shell

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.

  • Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list

Dane wyjściowe:

Credentialed accounts: - @.com (active)

Przykładowe dane wyjściowe:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Aby wyświetlić identyfikator projektu, użyj tego polecenia:
gcloud config list project

Dane wyjściowe:

[core] project =

Przykładowe dane wyjściowe:

[core] project = qwiklabs-gcp-44776a13dea667a6 Uwaga: pełną dokumentację gcloud znajdziesz w omówieniu gcloud CLI.

Dokumentacja

Podstawowe polecenia w Linuksie

Poniżej zamieściliśmy listę kilku podstawowych poleceń w Linuksie, które mogą być zawarte w instrukcjach lub blokach kodu w tym module.

Polecenie --> Działanie . Polecenie --> Działanie
mkdir (make directory) tworzy nowy folder . cd (change directory) zmienia lokalizację na inny folder
ls (list ) tworzy listę plików i folderów w katalogu . cat (concatenate) odczytuje zawartość pliku bez używania edytora
apt-get update aktualizuje bibliotekę systemu zarządzania pakietami . ping wysyła sygnał, aby sprawdzić osiągalność hosta
mv (move) przenosi plik . cp (copy) tworzy kopię pliku
pwd (present working directory ) pokazuje obecną lokalizację . sudo (super user do) nadaje wyższe uprawnienia administracyjne

Zadanie 1. Włączanie Cloud Run API i konfigurowanie środowiska powłoki

  1. W Cloud Shell włącz Cloud Run API:
gcloud services enable run.googleapis.com
  1. Jeśli pojawi się prośba o autoryzowanie wykorzystania Twoich danych logowania, zrób to. Następnie wyświetli się komunikat o udanym przeprowadzeniu operacji podobny do tego:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. Uwaga: API możesz również włączyć w sekcji Interfejsy API i usługi w konsoli.
  1. Ustaw region obliczeń:
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
  1. Utwórz zmienną środowiskową LOCATION:
LOCATION="{{{project_0.default_region | Region}}}"

Zadanie 2. Tworzenie przykładowej aplikacji

W tym zadaniu utworzysz prostą aplikację NodeJS opartą na platformie Express, która odpowiada na żądania HTTP.

  1. W Cloud Shell utwórz nowy katalog o nazwie helloworld i wyświetl go:
mkdir helloworld && cd helloworld
  1. Następnie będziesz tworzyć i edytować pliki. Pliki możesz edytować w edytorze kodu Cloud Shell lub nano. Żeby to zrobić, kliknij przycisk Otwórz edytor w Cloud Shell.

  2. Utwórz plik package.json i dodaj do niego tę treść:

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

Co najważniejsze, ten plik zawiera polecenie skryptu startowego i zależność od platformy Express umożliwiającej tworzenie aplikacji internetowych.

  1. Naciśnij kolejno CTRL+X, Y oraz Enter, aby zapisać plik package.json.

  2. Następnie w tym samym katalogu utwórz plik index.js i skopiuj do niego te wiersze:

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

Ten kod tworzy podstawowy serwer WWW, który nasłuchuje na porcie określonym przez zmienną środowiskową PORT. Aplikacja jest gotowa i możesz ją teraz skonteneryzować i przesłać do Artifact Registry.

  1. Naciśnij kolejno CTRL+X, Y oraz Enter, aby zapisać plik index.js.
Uwaga: podczas pierwszych kroków z Cloud Run możesz używać wielu innych języków. Instrukcje dotyczące skryptów w językach takich jak Go, Python, Java, PHP i Ruby oraz skryptów powłoki znajdziesz w tych krótkich przewodnikach (w języku angielskim).

Zadanie 3. Konteneryzowanie aplikacji i przesyłanie jej do Artifact Registry

  1. Żeby skonteneryzować przykładową aplikację, utwórz nowy plik o nazwie Dockerfile w tym samym katalogu, w którym znajdują się pliki źródłowe, i dodaj tę treść:
nano Dockerfile # Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-slim # Create and change to the app directory. WORKDIR /usr/src/app # Copy application dependency manifests to the container image. # A wildcard is used to ensure copying both package.json AND package-lock.json (when available). # Copying this first prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. # If you add a package-lock.json, speed your build by switching to 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web service on container startup. CMD [ "npm", "start" ]
  1. Naciśnij kolejno CTRL+X, Y oraz Enter, żeby zapisać plik Dockerfile.

  2. Teraz utwórz obraz kontenera przy pomocy Cloud Build, uruchamiając podane poniżej polecenie z katalogu zawierającego Dockerfile (zwróć uwagę na zmienną środowiskową $GOOGLE_CLOUD_PROJECT w poleceniu, która zawiera identyfikator projektu z modułu):

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

Cloud Build to usługa, która uruchamia Twoje kompilacje w Google Cloud. Wykonuje ona serię kroków kompilacji – każdy z nich jest przeprowadzany w kontenerze Dockera, aby utworzyć kontener aplikacji (lub inne artefakty) i przekazać go do rejestru Artifact Registry, a to wszystko w ramach jednego polecenia.

Gdy kontener zostanie przekazany do rejestru, wyświetli się komunikat z informacją o udanym przeprowadzeniu operacji i nazwą obrazu (gcr.io/[PROJECT-ID]/helloworld). Obraz będzie przechowywany w Artifact Registry i w razie potrzeby można go użyć ponownie.

  1. Użyj tego polecenia, aby sporządzić listę wszystkich obrazów kontenerów związanych z bieżącym projektem:
gcloud container images list
  1. Zarejestruj gcloud jako asystenta danych logowania we wszystkich rejestrach Dockera obsługiwanych przez Google:
gcloud auth configure-docker Uwaga: może pojawić się pytanie Czy chcesz kontynuować? (Y/N)? Jeśli tak, wpisz Y.
  1. Aby przetestować aplikację lokalnie w Cloud Shell, uruchom ją przy użyciu tego standardowego polecenia usługi docker:
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. W oknie Cloud Shell kliknij Podgląd w przeglądarce i wybierz Podejrzyj na porcie 8080.

Powinno się otworzyć okno przeglądarki z komunikatem „Hello World”. Możesz też użyć polecenia curl localhost:8080.

Zadanie 4. Wdrożenie w Cloud Run

  1. Skonteneryzowaną aplikację możesz wdrożyć w Cloud Run przy pomocy tego polecenia, do którego należy dodać identyfikator projektu:
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

Flaga allow-unauthenticated w tym poleceniu sprawia, że usługa jest dostępna publicznie.

  1. Gdy pojawi się prośba, potwierdź service name, naciskając Enter.
Uwaga: może pojawić się pytanie Do you want enable these APIs to continue (this will take a few minutes)? (Y/N). Jeśli chcesz włączyć wymagane interfejsy API, wpisz Y.

Poczekaj chwilę na zakończenie wdrażania.

Kiedy operacja zostanie wykonana, w wierszu poleceń wyświetli się URL usługi:

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

Możesz teraz zobaczyć wdrożony kontener, otwierając URL usługi w dowolnym oknie przeglądarki.

Gratulacje! Właśnie wdrożyliśmy w Cloud Run aplikację spakowaną do obrazu kontenera. Cloud Run automatycznie skaluje obraz kontenera w poziomie, aby obsługiwać otrzymane żądania, a następnie skaluje go w dół, gdy zapotrzebowanie maleje. We własnym środowisku płacisz tylko za procesor, pamięć i sieć wykorzystywane w trakcie obsługiwania żądań.

W tym module używaliśmy wiersza poleceń gcloud. Usługa Cloud Run jest również dostępna w konsoli Cloud.

  • Otwórz Menu nawigacyjne i w sekcji Technologia bezserwerowa kliknij Cloud Run. Powinna się wyświetlić Twoja usługa helloworld:

Karta Cloud Run, na której widać usługę helloworld

Zadanie 5. Czyszczenie danych

Cloud Run nie nalicza opłat, gdy usługa nie jest używana, ale może zostać pobrana należność za przechowywanie utworzonego obrazu kontenera.

  1. Możesz usunąć projekt Google Cloud, co spowoduje zaprzestanie naliczania opłat za wszelkie zasoby wykorzystywane w ramach tego projektu, albo usunąć tylko obraz helloworld przy użyciu tego polecenia:
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Kiedy pojawi się prośba, wpisz Y i naciśnij Enter, żeby przejść dalej.

  2. Żeby usunąć usługę Cloud Run, użyj tego polecenia:

gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
  1. Kiedy pojawi się prośba, wpisz Y i naciśnij Enter, żeby przejść dalej.

Kończenie modułu

Po ukończeniu modułu kliknij Zakończ moduł. Google Cloud Skills Boost usunie wykorzystane zasoby i wyczyści konto.

Po zakończeniu modułu będzie można ocenić związane z nim wrażenia. Wybierz odpowiednią liczbę gwiazdek, wpisz komentarz, a następnie kliknij Prześlij.

Liczba gwiazdek oznacza odpowiednie oceny:

  • 1 gwiazdka – bardzo zła,
  • 2 gwiazdki – zła,
  • 3 gwiazdki – neutralna,
  • 4 gwiazdki – dobra,
  • 5 gwiazdek – bardzo dobra.

Jeśli nie chcesz dzielić się swoją opinią, możesz zamknąć okno dialogowe.

Jeśli chcesz przesłać swoją opinię, sugestie lub propozycje poprawek, użyj karty Pomoc.

Gratulacje!

Moduł ukończony.

Kolejne kroki / Więcej informacji

Więcej informacji o tworzeniu, na podstawie kodu, bezstanowego kontenera HTTP, który będzie odpowiedni do zastosowania w Cloud Run, i przekazywaniu go do Artifact Registry znajdziesz w tych materiałach (w języku angielskim):

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

Ta treść jest obecnie niedostępna

Kiedy dostępność się zmieni, wyślemy Ci e-maila z powiadomieniem

Świetnie

Kiedy dostępność się zmieni, skontaktujemy się z Tobą e-mailem