1. Wprowadzenie
Omówienie
Funkcje Cloud Run to nowy sposób wdrażania zadań przy użyciu znanych paradygmatów zdarzeń GCF i podpisu funkcji. Zamiast korzystać z naszego sprawdzonych procesów kompilacji i konfiguracji wdrożenia, funkcje Cloud Run zapewniają bezpośrednią kontrolę nad bazową usługą utworzoną w Cloud Run.
Dzięki funkcjom Cloud Run zapewniamy prosty UX wdrożenia źródła Cloud Run, dając programistom pełną kontrolę nad zadaniami za pomocą konfiguracji Cloud Run.
W tym ćwiczeniu w Codelabs używane są przykłady Nodejs w poniższych przykładach. Możesz jednak skorzystać z przykładowych kodów Cloud Functions 2 generacji w wybranym języku:
- Przykłady funkcji w Pythonie
- Przykłady funkcji Nodejs
- Przykłady funkcji Go
- Przykłady funkcji w języku Java
- Przykłady funkcji PHP
- Przykłady funkcji Ruby
- Przykłady funkcji.NET
Czego się nauczysz
- Jak wdrożyć funkcję Cloud Run aktywowaną przez żądanie HTTP
2. Ustawianie zmiennych środowiskowych i Włączanie interfejsów API
Uaktualnij interfejs wiersza poleceń gcloud
Najpierw musisz mieć zainstalowaną najnowszą wersję gcloud CLI. Interfejs wiersza poleceń możesz zaktualizować, uruchamiając to polecenie:
gcloud components update
Skonfiguruj zmienne środowiskowe
Możesz ustawić zmienne środowiskowe, które będą używane podczas tego ćwiczenia z programowania.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
Włącz interfejsy API
Zanim zaczniesz korzystać z tego ćwiczenia z programowania, musisz włączyć kilka interfejsów API. To ćwiczenie w Codelabs wymaga używania poniższych interfejsów API. Możesz włączyć te interfejsy API, uruchamiając to polecenie:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. Tworzenie funkcji HTTP
Najpierw utwórz katalog na kod źródłowy i cd w tym katalogu.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Następnie utwórz plik package.json
z tą zawartością:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Następnie utwórz plik index.js
z tą zawartością:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. Wdrażanie funkcji
Teraz możesz wdrożyć funkcję Cloud Run, uruchamiając to polecenie:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
To polecenie używa buildpacks, aby przekształcić kod źródłowy funkcji w obraz kontenera gotowy do wykorzystania w środowisku produkcyjnym.
Uwaga:
- flaga –source jest używana do tego, aby usługa Cloud Run skompilowała funkcję w uruchomionej usłudze opartej na kontenerze
- flaga –funkcja (nowa) jest używana do ustawienia punktu wejścia nowej usługi jako podpisu funkcji, która ma być wywoływana.
- (opcjonalnie) atrybut –no-allow-unauthenticated w celu uniemożliwienia publicznego wywołania funkcji
5. Testowanie funkcji
Po zakończeniu wdrażania zobaczysz adres URL usługi. Aby wywołać funkcję, musisz wysłać uwierzytelnione żądanie z Twoim tokenem tożsamości lub tokenem tożsamości podmiotu, który ma przypisaną rolę wywołującego Cloud Run, jak pokazano poniżej:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Gratulacje!
Gratulujemy ukończenia ćwiczeń z programowania.
Zalecamy zapoznanie się z dokumentacją funkcji Cloud Run.
Omówione zagadnienia
- Jak wdrożyć funkcję Cloud Run aktywowaną przez żądanie HTTP
7. Czyszczenie danych
Aby uniknąć niezamierzonych opłat (na przykład jeśli usługi Cloud Run były wywoływane więcej razy niż przez miesięczny przydział wywołań Cloud Run na poziomie bezpłatnym), możesz usunąć Cloud Run albo projekt utworzony w kroku 2.
Aby usunąć funkcję Cloud Run, otwórz konsolę Cloud Run na stronie https://console.cloud.google.com/run i usuń usługę crf-http-codelab
.
Jeśli zdecydujesz się usunąć cały projekt, możesz otworzyć stronę https://console.cloud.google.com/cloud-resource-manager, wybrać projekt utworzony w kroku 2 i kliknąć Usuń. Jeśli usuniesz projekt, musisz zmienić projekty w pakiecie SDK Cloud. Aby wyświetlić listę wszystkich dostępnych projektów, uruchom polecenie gcloud projects list
.