1. Wprowadzenie
Przegląd
Funkcje Cloud Run to nowy sposób wdrażania zbiorów zadań z wykorzystaniem znanych paradygmatów zdarzeń i sygnatury funkcji GCF. Zamiast korzystać z naszego procesu kompilacji i konfiguracji wdrożenia, funkcje Cloud Run zapewniają bezpośrednią kontrolę nad usługą utworzoną w Cloud Run.
W przypadku funkcji Cloud Run udostępniamy prosty interfejs użytkownika wdrażania źródła Cloud Run, który zapewnia programistom pełną kontrolę nad ich obciążeniami za pomocą konfiguracji Cloud Run.
W przykładach poniżej używamy próbek nodejs. Możesz jednak użyć przykładowych kodów Cloud Functions 2 generacji w wybranym języku:
- Przykłady funkcji Pythona
- Przykłady funkcji Node.js
- 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
Uaktualnianie gcloud CLI
Najpierw musisz zainstalować najnowszą wersję gcloud CLI. Aby zaktualizować interfejs wiersza poleceń, uruchom to polecenie:
gcloud components update
Konfigurowanie zmiennych środowiskowych
Możesz ustawić zmienne środowiskowe, których będziesz używać podczas naszych ćwiczeń 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 samouczka, musisz włączyć kilka interfejsów API. Ten przewodnik wymaga użycia tych 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 kodu źródłowego i przejdź do niego.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Następnie utwórz plik package.json o tej treści:
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
Następnie utwórz plik index.js o tej treś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 pakietów kompilacji do przekształcenia kodu źródłowego funkcji w obraz kontenera gotowy do wykorzystania w środowisku produkcyjnym.
Uwaga:
- Flaga –source służy do informowania Cloud Run, że funkcja ma zostać skompilowana w usługę opartą na kontenerach, którą można uruchomić.
- Flaga –function (nowa) służy do ustawiania punktu wejścia nowego serwisu na sygnaturę funkcji, którą chcesz wywołać.
- (opcjonalnie) argument –no-allow-unauthenticated, aby uniemożliwić publiczne wywoływanie funkcji.
5. Testowanie funkcji
Po zakończeniu wdrażania zobaczysz adres URL usługi. Aby wywołać funkcję, musisz wysłać uwierzytelnione żądanie z tokenem tożsamości lub tokenem tożsamości podmiotu, który ma 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 ćwiczenia!
Zalecamy zapoznanie się z dokumentacją dotyczącą funkcji Cloud Run.
Omówione zagadnienia
- Jak wdrożyć funkcję Cloud Run aktywowaną przez żądanie HTTP
7. Czyszczenie danych
Aby uniknąć przypadkowych opłat (np. jeśli usługi Cloud Run zostaną przypadkowo wywołane więcej razy niż miesięczna liczba wywołań Cloud Run w bezpłatnej wersji), możesz usunąć Cloud Run lub projekt utworzony w kroku 2.
Aby usunąć funkcję Cloud Run, otwórz konsolę Cloud Run pod adresem https://console.cloud.google.com/run i usuń usługę crf-http-codelab.
Jeśli zdecydujesz się usunąć cały projekt, otwórz stronę https://console.cloud.google.com/cloud-resource-manager, wybierz projekt utworzony w kroku 2 i kliknij Usuń. Jeśli usuniesz projekt, musisz zmienić projekty w Cloud SDK. Listę wszystkich dostępnych projektów możesz wyświetlić, uruchamiając polecenie gcloud projects list.