Guide de démarrage rapide : Créer et déployer une application Web Python (LangChain) sur Cloud Run

Cloud Run vous permet de créer et de déployer des applications LangChain qui utilisent Gemini pour répondre aux requêtes. Dans ce guide de démarrage rapide, vous allez déployer une application Web Python qui répond aux questions sur les capitales. Cloud Run crée automatiquement le conteneur lorsque vous déployez à partir du code source.

Avant de commencer

  1. Installez la Google Cloud CLI.

  2. Configurez la gcloud CLI afin d'utiliser votre identité fédérée.

    Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.

  3. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  4. Créez ou sélectionnez un projet Cloud de Confiance .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Cloud de Confiance  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Cloud de Confiance que vous créez.

    • Sélectionnez le projet Cloud de Confiance que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Cloud de Confiance .

  5. Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.

  6. Vérifiez que la facturation est activée pour votre projet Cloud de Confiance .

  7. Si vous êtes soumis à une règle d'administration de restriction de domaine limitant les appels non authentifiés pour votre projet, vous devez accéder au service déployé comme décrit dans la section Tester les services privés.

  8. Activez l'API Cloud Run Admin et l'API Cloud Build, si elles ne le sont pas déjà :

    Rôles requis pour activer les API

    Pour activer des API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable run.googleapis.com cloudbuild.googleapis.com

    Une fois l'API Cloud Run Admin activée, le compte de service Compute Engine par défaut est créé automatiquement.

  9. Consultez les tarifs de Cloud Run ou estimez les coûts à l'aide du simulateur de coût.
  10. Vous avez besoin d'une clé API de Google AI Studio pour déployer l'application LangChain avec un modèle Gemini. Pour générer une clé API à l'aide de Google AI Studio, consultez Utiliser les clés API Gemini dans la documentation de l'API Gemini. Vous référencerez cette clé lors du déploiement de votre service.

Rôles requis

Pour obtenir les autorisations nécessaires pour suivre ce guide de démarrage rapide, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Accorder au compte de service Cloud Build l'accès à votre projet

Cloud Build utilise automatiquement le compte de service Compute Engine par défaut comme compte de service Cloud Build par défaut pour compiler votre code source et votre ressource Cloud Run, sauf si vous modifiez ce comportement.

Pour que Cloud Build puisse créer vos sources, attribuez au compte de service Cloud Build le rôle Créateur Cloud Run (roles/run.builder) dans votre projet :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \
    --role=roles/run.builder

Remplacez PROJECT_ID par l'ID de votre projet Cloud de Confianceet SERVICE_ACCOUNT_EMAIL_ADDRESS par l'adresse e-mail du compte de service Cloud Build. Si vous utilisez le compte de service Compute Engine par défaut comme compte de service Cloud Build, utilisez le format suivant pour l'adresse e-mail du compte de service :

PROJECT_NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com

Remplacez PROJECT_NUMBER par votre numéro de projet Cloud de Confiance.

Pour obtenir des instructions détaillées sur la recherche de votre ID et de votre numéro de projet, consultez Créer et gérer des projets.

L'attribution du rôle de compilateur Cloud Run prend quelques minutes à se propager.

Coder l'exemple d'application

Pour écrire une application en Python :

  1. Créez un répertoire nommé langchain-gemini-fastapi-app et modifiez les sous-répertoires comme suit :

    mkdir langchain-gemini-fastapi-app
    cd langchain-gemini-fastapi-app
    
  2. Créez un fichier nommé main.py et collez-y le code suivant :

    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"}
    
  3. Créez un fichier nommé requirements.txt et collez-y le code suivant :

    fastapi
    uvicorn
    langchain
    langchain-google-genai
    python-dotenv
    

Déployer sur Cloud Run depuis la source

Cette fonction crée automatiquement une image de conteneur à partir du code source et la déploie.

Pour déployer depuis la source, exécutez la commande suivante :

  gcloud run deploy gemini-fastapi-service \
    --source . \
    --region us-central1 \
    --no-allow-unauthenticated \
    --set-env-vars GEMINI_API_KEY=API_KEY

Remplacez API_KEY par votre clé API Google AI Studio. Pour la production, il est recommandé d'utiliser Secret Manager pour gérer la clé API, plutôt que des variables d'environnement simples.

Cloud Run affiche l'URL du service, par exemple https://gemini-fastapi-service-xyz-uc.a.run.app, une fois l'application déployée.

Tester votre service Cloud Run

Testez votre service en envoyant une requête à l'agent à l'aide de la commande curl suivante :

  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?"}'

Remplacez YOUR-SERVICE-URL par l'URL de votre service.

L'agent envoie la réponse suivante :

  {
  "response": "Paris"
  }

Pour vérifier que votre service fonctionne correctement, consultez l'onglet Journaux du service Cloud Run.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Cloud de Confiance , supprimez le projet Cloud de Confiance qui les contient.

Pour éviter que des frais supplémentaires ne soient facturés sur votre compte Cloud de Confiance by S3NS , supprimez toutes les ressources que vous avez déployées avec ce guide de démarrage rapide.

Supprimer votre dépôt

Cloud Run ne vous facture pas lorsque votre service déployé n'est pas utilisé. Toutefois, il se peut que des frais vous soient toujours facturés pour le stockage de l'image de conteneur dans Artifact Registry. Pour supprimer des dépôts Artifact Registry, suivez les étapes décrites dans Supprimer des dépôts de la documentation Artifact Registry.

Supprimer votre service

Les services Cloud Run n'entraînent pas de frais tant qu'ils ne reçoivent pas de requêtes. Pour supprimer votre service Cloud Run, procédez comme suit :

Console

Pour supprimer un service, procédez comme suit :

  1. Dans la console Cloud de Confiance by S3NS , accédez à la page Services de Cloud Run :

    Accédez à Cloud Run

  2. Recherchez le service que vous souhaitez supprimer dans la liste des services, puis cliquez la case correspondante pour le sélectionner.

  3. Cliquez sur Supprimer pour supprimer toutes les révisions du service.

gcloud

Pour supprimer un service, exécutez la commande suivante :

gcloud run services delete SERVICE --region REGION

Remplacez les éléments suivants :

  • SERVICE : nom de votre service.
  • REGION : Cloud de Confiance région du service.

Supprimer votre projet de test

La suppression de votre projet Cloud de Confiance arrête la facturation de toutes les ressources de ce projet. Pour libérer toutes les ressources Cloud de Confiance by S3NS de votre projet, procédez comme suit :

    Supprimer un projet Cloud de Confiance  :

    gcloud projects delete PROJECT_ID

Étapes suivantes

Pour savoir comment créer un conteneur à partir d'une source de code et le transférer vers un dépôt, consultez la section suivante :