Samouczek Cloud Run Starter

1. Przegląd

Cloud Run to w pełni zarządzana platforma bezserwerowa, 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.

Rozwiązanie to jest oparte 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.

Czego się nauczysz

W tym module nauczysz się:

  • Wdrażanie aplikacji Cloud Run

Wymagania wstępne

  • Zakładamy, że użytkownik zna środowiska konsoli Cloud i Cloud Shell.

2. Konfiguracja i wymagania

Konfigurowanie projektu w Google Cloud

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Możesz ją zaktualizować w dowolnym momencie.
  • Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się nim przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle jest on oznaczony jako PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i będzie obowiązywać przez cały czas trwania projektu.
  • Warto wiedzieć, że istnieje też trzecia wartość, czyli numer projektu, z której korzystają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Ukończenie tego laboratorium nie powinno wiązać się z dużymi kosztami, a nawet z żadnymi. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub cały projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Konfiguracja środowiska

Aktywuj Cloud Shell, klikając ikonę po prawej stronie paska wyszukiwania.

ecdc43ada29e91b.png

W Cloud Shell włącz Cloud Run API:

gcloud services enable run.googleapis.com

Jeśli pojawi się prośba o autoryzację, kliknij „Autoryzuj”, aby kontynuować.

6356559df3eccdda.png

Powinien wyświetlić się komunikat o powodzeniu podobny do tego:

Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.

3. Przygotowywanie aplikacji

Najpierw przygotujesz prostą aplikację Node.js na platformie Express, która odpowiada na żądania HTTP.

W Cloud Shell utwórz nowy katalog o nazwie starter-nodejs, a następnie przejdź do niego:

mkdir starter-nodejs
cd starter-nodejs

Utwórz plik package.json, uruchamiając te polecenia:

cat > ./package.json << EOF
{
  "name": "cloudrun-starter-app",
  "version": "1.0.0",
  "description": "Node.js Starter Application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}
EOF

Plik powyżej zawiera polecenie skryptu startowego i zależność od platformy aplikacji internetowej Express.

Następnie w tym samym katalogu utwórz plik index.js, uruchamiając te polecenia:

cat > ./index.js << EOF
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  console.log('Received a request.');
  res.send("Hello Cloud Run!");
});

const port = process.env.PORT || 8080;

app.listen(port, () => {
  console.log('Listening on port', port);
});
EOF

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 wdrożyć.

4. Wdrażanie aplikacji Cloud Run

Aby wdrożyć aplikację, uruchom to polecenie:

gcloud run deploy starter-app \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --max-instances=3

Potwierdź utworzenie repozytorium Artifact Registry:

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created.

Do you want to continue (Y/n)? y

W wyniku wykonania poprzedniego polecenia zostaną wykonane te czynności:

d661616f9b2fffcf.png

Sprawdź wyniki tych kroków w konsoli Cloud: Cloud Build, Cloud Storage, Artifact RegistryCloud Run.

f536961280192919.png

5. Gratulacje!

Gratulacje! Właśnie udało Ci się wdrożyć aplikację w Cloud Run.

Omówione zagadnienia:

  • Jak wdrożyć aplikację startową w Cloud Run

Co dalej?

Zapoznaj się z innymi ćwiczeniami z programowania dotyczącymi Cymbal Eats:

Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, możesz usunąć projekt zawierający te zasoby lub zachować projekt i usunąć poszczególne zasoby.

Usuwanie projektu

Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego w tym samouczku.