1. Einführung

Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie zustandslose Container ausführen können, die über HTTP-Anfragen aufrufbar sind. Sie basiert auf dem Knative Open-Source-Projekt. Dadurch können Sie Ihre Arbeitslasten auf verschiedene Plattformen übertragen. Cloud Run arbeitet serverlos und benötigt keine Infrastrukturverwaltung. So können Sie sich ganz auf das Programmieren von Anwendungen konzentrieren.
In dieser Anleitung erstellen Sie eine einfache FastAPI-Webanwendung und stellen sie in Cloud Run bereit.
Lerninhalte
- Erstellen einer „Hello World“-Anwendung mit FastAPI
- Testen der Anwendung durch Ausführen des FastAPI-Servers im
dev-Modus - Cloud Buildpacks und wie das Vorhandensein von
fastapiunduvicornin einerrequirements.txt-Datei das Erstellen eines Dockerfile überflüssig macht - Bereitstellen der FastAPI-Anwendung in Cloud Run
2. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Er ist ein String, der von Google APIs nicht verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann also nicht geändert werden, nachdem sie festgelegt wurde. Die Cloud Console generiert automatisch einen eindeutigen String. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als
PROJECT_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie eine eigene ID ausprobieren und prüfen, ob sie verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Es gibt noch einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um zu vermeiden, dass Ihnen nach dieser Anleitung Kosten in Rechnung gestellt werden, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testprogramm im Wert von 300$ teilnehmen.
Cloud Shell starten
Sie können Google Cloud zwar von Ihrem Laptop aus per Fernzugriff nutzen, in dieser Anleitung verwenden Sie jedoch Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Cloud Shell aktivieren
- Klicken Sie in der Cloud Console auf Cloud Shell aktivieren.

Wenn Sie Cloud Shell zum ersten Mal starten, wird ein Fenster mit einer Beschreibung eingeblendet. Klicken Sie in diesem Fall einfach auf Weiter.

Das Herstellen der Verbindung mit der Cloud Shell sollte nur wenige Augenblicke dauern.

Diese virtuelle Maschine enthält alle Entwicklungstools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Die meisten, wenn nicht sogar alle Aufgaben in diesem Codelab können mit einem Browser erledigt werden.
Sobald die Verbindung mit der Cloud Shell hergestellt ist, sehen Sie, dass Sie authentifiziert sind und für das Projekt schon Ihre Projekt-ID eingestellt ist.
- Führen Sie in der Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
Befehlsausgabe
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Führen Sie in der Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project
Befehlsausgabe
[core] project = <PROJECT_ID>
Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:
gcloud config set project <PROJECT_ID>
Befehlsausgabe
Updated property [core/project].
3. APIs aktivieren
Aktivieren Sie in Cloud Shell die Artifact Registry API, die Cloud Build API und die Cloud Run API:
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com
Wenn die Aktivierung erfolgreich war, erhalten Sie eine Meldung, die ungefähr so aussieht:
Operation "operations/..." finished successfully.
Jetzt können Sie mit der Arbeit beginnen und Ihre Anwendung schreiben.
4. Anwendung schreiben
In diesem Schritt erstellen Sie eine „Hello World“-FastAPI-Python-Anwendung, die auf HTTP-Anfragen antwortet.
Arbeitsverzeichnis
Erstellen Sie mit Cloud Shell ein Arbeitsverzeichnis mit dem Namen helloworld-fastapi und wechseln Sie zu diesem Verzeichnis:
mkdir ~/helloworld-fastapi && cd ~/helloworld-fastapi
main.py
Erstellen Sie eine Datei mit dem Namen main.py:
touch main.py
Bearbeiten Sie die Datei mit dem Befehlszeileneditor Ihrer Wahl (Nano, Vim oder Emacs) oder klicken Sie auf die Schaltfläche „Cloud Shell-Editor“:

Verwenden Sie diesen Befehl, um die Datei direkt mit dem Cloud Shell-Editor zu bearbeiten:
cloudshell edit main.py
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello(name: str = "World"):
"""Return a friendly HTTP greeting."""
return {
"message": f"Hello {name}!"
}
Dieser Code erstellt einen einfachen Webdienst, der auf HTTP GET-Anfragen mit einer freundlichen Nachricht antwortet.
requirements.txt
Öffnen Sie das Terminal noch einmal und fügen Sie eine Datei mit dem Namen requirements.txt hinzu, um die Abhängigkeiten zu definieren:
touch requirements.txt
Verwenden Sie diesen Befehl, um die Datei direkt mit dem Cloud Shell-Editor zu bearbeiten:
cloudshell edit requirements.txt
requirements.txt
# https://pypi.org/project/fastapi
fastapi[standard]==0.116.1
# https://pypi.org/project/uvicorn
uvicorn==0.35.0
Die FastAPI-Anwendung kann jetzt bereitgestellt werden. Zuerst müssen Sie sie jedoch testen.
5. Anwendung testen
Verwenden Sie zum Testen der Anwendung uv (den extrem schnellen Paket- und Projektmanager von Python), der in Cloud Shell vorinstalliert ist.
Erstellen Sie zum Testen der Anwendung eine virtuelle Umgebung:
uv venv
Installieren Sie die Abhängigkeiten:
uv pip install -r requirements.txt
Starten Sie die Anwendung im dev-Modus:
uv run fastapi dev main.py --port=8080
In den Logs sehen Sie, dass Sie sich im Entwicklungsmodus befinden:
FastAPI Starting development server 🚀
Searching for package file structure from directories with __init__.py files
Importing from /home/user/code/helloworld-fastapi
module 🐍 main.py
code Importing the FastAPI app object from the module with the following code:
from main import app
app Using import string: main:app
server Server started at http://127.0.0.1:8080
server Documentation at http://127.0.0.1:8080/docs
tip Running in development mode, for production use: fastapi run
Logs:
INFO Will watch for changes in these directories: ['/home/user/code/helloworld-fastapi']
INFO Uvicorn running on http://127.0.0.1:8080 (Press CTRL+C to quit)
INFO Started reloader process [19627] using WatchFiles
INFO Started server process [19629]
INFO Waiting for application startup.
INFO Application startup complete.
Klicken Sie im Cloud Shell-Fenster auf das Symbol Web Preview und wählen Sie Preview on port 8080 aus:

Es sollte sich jetzt ein Browserfenster öffnen, in dem die Nachricht Hello World! angezeigt wird.
Sie können auch eine weitere Cloud Shell-Sitzung (einen neuen Terminaltab) öffnen, indem Sie auf das Symbol + klicken und eine Webanfrage an die lokal ausgeführte Anwendung senden:
curl localhost:8080
Sie sollten die folgende Antwort erhalten:
{"message": "Hello World!"}
Wenn Sie fertig sind, kehren Sie zur Hauptsitzung von Cloud Shell zurück und beenden Sie den FastAPI-Entwicklungsserver mit CTRL+C.
Die Anwendung funktioniert wie erwartet. Jetzt können Sie sie bereitstellen.
6. In Cloud Run bereitstellen
Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar. Definieren Sie die Region, die Sie für die Bereitstellung verwenden möchten, z. B.:
REGION=europe-west4
Achten Sie darauf, dass Sie sich noch im Arbeitsverzeichnis befinden:
ls
Folgende Dateien sollten aufgeführt sein:
main.py requirements.txt
Erstellen Sie vor der Bereitstellung eine .gcloudignore-Datei mit .venv/. Dadurch wird verhindert, dass die virtuelle Umgebung, die während des lokalen Tests mit uv erstellt wurde, in die Cloud Run-Bereitstellung aufgenommen wird.
Erstellen Sie die .gcloudignore-Datei mit dem folgenden Befehl:
echo ".venv/" > .gcloudignore
Stellen Sie die Anwendung in Cloud Run bereit:
gcloud run deploy helloworld-fastapi \
--source . \
--region $REGION \
--allow-unauthenticated
- Mit der Option
--allow-unauthenticatedwird der Dienst öffentlich verfügbar gemacht. Wenn Sie nicht authentifizierte Anfragen vermeiden möchten, verwenden Sie stattdessen--no-allow-unauthenticated.
Beim ersten Mal werden Sie aufgefordert, ein Artifact Registry-Repository zu erstellen. Drücken Sie Enter, um zu bestätigen:
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [REGION] will be created. Do you want to continue (Y/n)?
Dadurch wird der Upload Ihres Quellcodes in das Artifact Registry-Repository und die Erstellung Ihres Container-Images gestartet:
Building using Buildpacks and deploying container ... * Building and deploying new service... Building Container. OK Creating Container Repository... OK Uploading sources... * Building Container... Logs are available at ...
Warten Sie dann einige Sekunden, bis die Bereitstellung abgeschlossen ist. Wenn die Bereitstellung erfolgreich war, wird in der Befehlszeile die Dienst-URL angezeigt:
... OK Building and deploying new service... Done. OK Creating Container Repository... OK Uploading sources... OK Building Container... Logs are available at ... OK Creating Revision... Creating Service. OK Routing traffic... OK Setting IAM Policy... Done. Service [SERVICE]... has been deployed and is serving 100 percent of traffic. Service URL: https://SERVICE-PROJECTHASH-REGIONID.a.run.app
Sie können die Dienst-URL mit diesem Befehl abrufen:
SERVICE_URL=$( \
gcloud run services describe helloworld-fastapi \
--region $REGION \
--format "value(status.address.url)" \
)
echo $SERVICE_URL
Die Ausgabe sollte ungefähr so aussehen:
https://helloworld-fastapi-PROJECTHASH-REGIONID.a.run.app
Sie können Ihre Anwendung jetzt verwenden, indem Sie die Dienst-URL in einem Webbrowser öffnen:

Sie können die Anwendung auch über Cloud Shell aufrufen:
curl $SERVICE_URL?name=me
Sie sollten die erwartete Begrüßung erhalten:
{"message": "Hello me!"}
Glückwunsch! Sie haben gerade eine Anwendung in Cloud Run bereitgestellt. Cloud Run skaliert das Container-Image automatisch horizontal, damit die empfangenen Anfragen bearbeitet werden können, und skaliert es wieder herunter, wenn der Bedarf sinkt. Es fallen nur Kosten für die CPU-, Arbeitsspeicher- und Netzwerkressourcen an, die während der Anfrageverarbeitung für diesen Cloud Run-Dienst verbraucht werden.
7. Bereinigen
Während für Cloud Run keine Kosten anfallen, wenn der Dienst nicht verwendet wird, wird Ihnen dennoch das Speichern des Container-Images in Artifact Registry möglicherweise in Rechnung gestellt. Sie können Ihr Repository oder Ihr Cloud-Projekt löschen, um Kosten zu vermeiden. Durch das Löschen des Cloud-Projekts wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.
So löschen Sie Ihr Container-Image-Repository:
gcloud artifacts repositories delete cloud-run-source-deploy \
--location $REGION
So löschen Sie Ihren Cloud Run-Dienst:
gcloud run services delete helloworld-fastapi \
--region $REGION
So löschen Sie Ihr Google Cloud-Projekt:
- Rufen Sie Ihre aktuelle Projekt-ID ab:
PROJECT_ID=$(gcloud config get-value core/project)
- Prüfen Sie, ob dies das Projekt ist, das Sie löschen möchten:
echo $PROJECT_ID
- Löschen Sie das Projekt:
gcloud projects delete $PROJECT_ID
8. Glückwunsch!

Sie haben eine „Hello World“-FastAPI-Webanwendung erstellt und in Cloud Run bereitgestellt.
Behandelte Themen
- Erstellen einer „Hello World“-Anwendung mit FastAPI
- Testen der Anwendung durch Ausführen des FastAPI-Servers im
dev-Modus - Cloud Buildpacks und wie das Vorhandensein von
fastapiunduvicornin einerrequirements.txt-Datei das Erstellen eines Dockerfile überflüssig macht - Bereitstellen der FastAPI-Anwendung in Cloud Run
Weitere Informationen
- Sieh dir die Cloud Run-Dokumentation an
- Dev to Prod in drei einfachen Schritten mit Cloud Run, um weitere Optionen zu erkunden
- Schließen Sie Django in Cloud Run ab, um eine Cloud SQL-Datenbank zu erstellen, Anmeldedaten mit Secret Manager zu verwalten und Django bereitzustellen
- Weitere Cloud Run-Codelabs