Kurzanleitung: Python-Web-App (LangChain) in Cloud Run erstellen und bereitstellen
Hier erfahren Sie, wie Sie eine LangChain-Anwendung mit Cloud Run und Gemini erstellen und bereitstellen, um auf Anfragen zu Hauptstädten zu antworten.
Wenn Sie die Schritte in dieser Kurzanleitung ausführen, erstellt Cloud Run automatisch ein Dockerfile für Sie, wenn Sie aus Quellcode bereitstellen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google CloudKonto haben, erstellen Sie eines, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Rollen zuweisen.
-
Erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projektaktiviert ist.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Rollen zuweisen.
-
Erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projektaktiviert ist.
Wenn Sie einer Domaineinschränkung zur Organisation nicht eingeschränkter Aufrufe für Ihr Projekt unterliegen, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.
-
Aktivieren Sie die Cloud Run Admin API und die Cloud Build APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Rollen zuweisen.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Nachdem die Cloud Run Admin API aktiviert wurde, wird das Compute Engine-Standarddienstkonto automatisch erstellt.
- Preise für Cloud Run ansehen oder Kosten mit dem Preisrechner schätzen
- Sie benötigen einen API-Schlüssel von Google AI Studio, um die LangChain-App mit einem Gemini-Modell bereitzustellen. Informationen zum Generieren eines API Schlüssels mit Google AI Studio finden Sie in der Gemini API-Dokumentation unter Gemini API-Schlüssel verwenden. Sie verweisen auf diesen Schlüssel , wenn Sie Ihren Dienst bereitstellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Kurzanleitung benötigen:
-
Rolle „Cloud Run-Administrator“ (
roles/run.admin) für das Projekt -
Rolle „Cloud Run-Quellcodeentwickler“ (
roles/run.sourceDeveloper) für das Projekt -
Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser) für die Dienstidentität -
Rolle „Logs-Betrachter“ (
roles/logging.viewer) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Dem Cloud Build-Dienstkonto Zugriff auf Ihr Projekt gewähren
Cloud Build verwendet automatisch das Compute Engine-Standard dienstkonto als Standard dienstkonto für Cloud Build, um Ihren Quellcode und Ihre Cloud Run-Ressource zu erstellen, sofern Sie dieses Verhalten nicht überschreiben.
Damit Cloud Build Ihre Quellen erstellen kann, müssen Sie dem Cloud Build-Dienst
konto die Rolle „Cloud Run
Builder“
(roles/run.builder) für Ihr Projekt zuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Ersetzen Sie PROJECT_ID durch Ihre Google Cloud
Projekt-ID und SERVICE_ACCOUNT_EMAIL_ADDRESS durch die
E-Mail-Adresse des Cloud Build-Dienstkontos. Wenn Sie das Compute Engine-Standarddienstkonto als Cloud Build-Dienstkonto verwenden, verwenden Sie das folgende Format für die E-Mail-Adresse des Dienstkontos:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ersetzen Sie PROJECT_NUMBER durch Ihre Google Cloud
Projektnummer.
Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer, finden Sie unter Projekte erstellen und verwalten.
Es dauert einige Minuten, bis die Zuweisung der Rolle „Cloud Run-Builder“ übertragen wurde.
Beispielanwendung schreiben
So schreiben Sie eine Anwendung in Python:
Erstellen Sie ein neues Verzeichnis mit dem Namen
langchain-gemini-fastapi-appund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir langchain-gemini-fastapi-app cd langchain-gemini-fastapi-appErstellen Sie eine Datei mit dem Namen
main.pyund fügen Sie den folgenden Code in diese ein:import os import uvicorn from fastapi import FastAPI, HTTPException from pydantic import BaseModel from langchain_google_genai import ChatGoogleGenerativeAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser # Initialize FastAPI app = FastAPI(title="LangChain Gemini Cloud Run App") # 1. Setup Gemini Model # We expect GOOGLE_API_KEY to be set in the environment variables llm = ChatGoogleGenerativeAI( model="gemini-2.5-flash", temperature=0.7 ) # 2. Define the Chain prompt = ChatPromptTemplate.from_template("You are a helpful assistant. Answer the following question concisely: {topic}") output_parser = StrOutputParser() # Chain: Prompt -> Model -> String Parser chain = prompt | llm | output_parser # 3. Define Request Model class QueryRequest(BaseModel): topic: str # 4. Define Endpoint @app.post("/chat") async def chat(request: QueryRequest): try: response = await chain.ainvoke({"topic": request.topic}) return {"response": response} except Exception as e: raise HTTPException(status_code=500, detail=str(e)) @app.get("/") def health_check(): return {"status": "ok", "service": "Gemini-FastAPI"}Erstellen Sie eine Datei mit dem Namen
requirements.txtund fügen Sie den folgenden Code in diese ein:fastapi uvicorn langchain langchain-google-genai python-dotenv
Für Cloud Run aus Quelle bereitstellen
Beim Bereitstellen aus dem Quellcode wird automatisch ein Container-Image aus dem Quellcode erstellt und bereitgestellt.
So stellen Sie aus der Quelle bereit:
gcloud run deploy gemini-fastapi-service \
--source . \
--region us-central1 \
--no-allow-unauthenticated \
--set-env-vars GEMINI_API_KEY=API_KEY
Ersetzen Sie API_KEY durch Ihren Google AI Studio-API-Schlüssel. Für die Produktion wird empfohlen, Secret Manager zum Verarbeiten des API-Schlüssels zu verwenden, anstatt einfache Umgebungsvariablen.
In Cloud Run wird die Dienst-URL, z. B. https://gemini-fastapi-service-xyz-uc.a.run.app, angezeigt, nachdem Sie die App erfolgreich bereitgestellt haben.
Cloud Run-Dienst testen
Testen Sie Ihren Dienst, indem Sie mit dem folgenden curl-Befehl eine Abfrage an den Agenten senden:
curl -X POST YOUR-SERVICE-URL/chat \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-d '{"topic": "What is the capital of France?"}'
Ersetzen Sie YOUR-SERVICE-URL durch die URL Ihres Dienstes.
Der Agent sendet die folgende Antwort:
{
"response": "Paris"
}
Prüfen Sie auf dem Tab Logs des Cloud Run-Dienstes, ob Ihr Dienst ordnungsgemäß funktioniert.
Bereinigen
Löschen Sie das Projekt von zusammen mit den Ressourcen, damit Ihrem Google Cloud Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Google Cloud
Löschen Sie alle Ressourcen , die Sie mit dieser Kurzanleitung bereitgestellt haben, um zusätzliche Kosten für Ihr Google Cloud Konto zu vermeiden.
Repository löschen
Cloud Run berechnet Ihnen keine Kosten, wenn Ihr bereitgestellter Dienst nicht verwendet wird. Möglicherweise werden Ihnen jedoch weiterhin Kosten für das Speichern des Container-Images in Artifact Registry in Rechnung gestellt. Informationen zum Löschen von Artifact Registry-Repositories finden Sie in der Artifact Registry Dokumentation unter Repositories löschen.
Dienst löschen
Für Cloud Run-Dienste fallen erst Kosten an, wenn sie Anfragen erhalten. So löschen Sie Ihren Cloud Run-Dienst:
Console
So löschen Sie einen Dienst:
Rufen Sie in der Google Cloud Console die Seite Dienste von Cloud Run auf:
Klicken Sie in der Übersicht das Kästchen des zu löschenden Dienstes an.
Klicken Sie auf Löschen. Dadurch werden alle Überarbeitungen des Dienstes gelöscht. Dadurch werden alle Überarbeitungen des Dienstes gelöscht.
gcloud
Führen Sie folgenden Befehl aus, um einen Dienst zu löschen:
gcloud run services delete SERVICE --region REGION
Ersetzen Sie Folgendes:
- SERVICE: Name Ihres Dienstes.
- REGION: Google Cloud Region des Dienstes.
Testprojekt löschen
Wenn Sie Ihr Google Cloud Projekt löschen, wird die Abrechnung für alle Ressourcen in diesem Projekt beendet. So geben Sie alle Google Cloud Ressourcen in Ihrem Projekt frei:
Löschen Sie ein Google Cloud Projekt:
gcloud projects delete PROJECT_ID
Nächste Schritte
Weitere Informationen dazu, wie Sie einen Container aus Quellcode erstellen und diesen mithilfe eines Push-Vorgangs in ein Repository übertragen, finden Sie unter: