Guide de démarrage rapide : Créer et déployer un agent IA sur Cloud Run à l'aide de l'Agent Development Kit (ADK)
Découvrez comment utiliser une seule commande pour créer et déployer un agent IA sur Cloud Run à l'aide de l'Agent Development Kit (ADK) pour Python. L'agent que vous déployez récupère le bulletin météo pour une ville que vous spécifiez.
En suivant les étapes de ce guide de démarrage rapide, Cloud Run crée automatiquement un Dockerfile pour vous lorsque vous déployez à partir du code source.
Pour en savoir plus sur la façon dont le buildpack Python détermine le point d'entrée par défaut pour les déploiements de sources Cloud Run, consultez Créer une application Python.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un Google Cloud projet.
Rôles requis pour sélectionner ou créer un projet
- Sélectionner 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 avez besoin du rôle Créateur de projet
(
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un Google Cloud projet :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du Google Cloud projet que vous créez. -
Sélectionnez le Google Cloud projet que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre Google Cloud projet.
-
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 nouveau projet, vous disposez déjà des autorisations requises.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un Google Cloud projet.
Rôles requis pour sélectionner ou créer un projet
- Sélectionner 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 avez besoin du rôle Créateur de projet
(
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un Google Cloud projet :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du Google Cloud projet que vous créez. -
Sélectionnez le Google Cloud projet que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre Google Cloud projet.
-
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 nouveau projet, vous disposez déjà des autorisations requises.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
-
Activez l'API Cloud Run Admin, l'API Vertex AI et les API Cloud Build :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur de Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'serviceusage.services.enableautorisation. Découvrez comment attribuer des rôles.gcloud services enable run.googleapis.com
aiplatform.googleapis.com cloudbuild.googleapis.com - Installez l'ADK en suivant les instructions de la documentation de l'Agent Development Kit.
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.
- Consultez la tarification de Cloud Run ou estimez les coûts à l'aide du simulateur de coût.
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 :
- Développeur de source Cloud Run (
roles/run.sourceDeveloper) sur le projet - Utilisateur Vertex AI (
roles/aiplatform.user) sur le projet - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service - Lecteur des journaux (
roles/logging.viewer) on the project
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 l'accès au compte de service Cloud Build à 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 créer votre code source et votre ressource Cloud Run, sauf si vous remplacez ce comportement.
Pour que Cloud Build puisse créer vos sources, accordez au compte de service Cloud Build le rôle Compilateur
Cloud Run
(roles/run.builder) sur votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Remplacez PROJECT_ID par votre Google CloudID de projet et 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.gserviceaccount.com
Remplacez PROJECT_NUMBER par votre Google Cloud
numéro de projet.
Pour obtenir des instructions détaillées sur la recherche de votre ID du projet et de votre numéro de projet, consultez la section Créer et gérer des projets.
La propagation de l'attribution du rôle de compilateur Cloud Run prend quelques minutes pour se propager.
Coder l'exemple d'application
Pour écrire une application en Python :
Créez un répertoire parent nommé
parent_folderet accédez-y :mkdir parent_folder cd parent_folderDans le répertoire
parent_folder, créez un sous-répertoire nommémulti_tool_agentet accédez-y :mkdir multi_tool_agent cd multi_tool_agentCréez un fichier
__init__.pypour importer l'agent :from . import agentCréez un fichier
agent.pypour définir l'agent qui répond aux questions sur l'heure et la météo dans une ville spécifiée :import datetime from zoneinfo import ZoneInfo from google.adk.agents import Agent def get_weather(city: str) -> dict: """Retrieves the current weather report for a specified city. Args: city (str): The name of the city for which to retrieve the weather report. Returns: dict: status and result or error msg. """ if city.lower() == "new york": return { "status": "success", "report": ( "The weather in New York is sunny with a temperature of 25 degrees" " Celsius (77 degrees Fahrenheit)." ), } else: return { "status": "error", "error_message": f"Weather information for '{city}' is not available.", } def get_current_time(city: str) -> dict: """Returns the current time in a specified city. Args: city (str): The name of the city for which to retrieve the current time. Returns: dict: status and result or error msg. """ if city.lower() == "new york": tz_identifier = "America/New_York" else: return { "status": "error", "error_message": ( f"Sorry, I don't have timezone information for {city}." ), } tz = ZoneInfo(tz_identifier) now = datetime.datetime.now(tz) report = ( f'The current time in {city} is {now.strftime("%Y-%m-%d %H:%M:%S %Z%z")}' ) return {"status": "success", "report": report} root_agent = Agent( name="weather_time_agent", model="gemini-2.5-flash", description=( "Agent to answer questions about the time and weather in a city." ), instruction=( "You are a helpful agent who can answer user questions about the time and weather in a city." ), tools=[get_weather, get_current_time], )Créez un fichier
.envet ajoutez les variables suivantes :GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT=PROJECT_ID GOOGLE_CLOUD_LOCATION=REGIONRemplacez les éléments suivants :
- PROJECT_ID : ID du Google Cloud projet.
- REGION : région dans laquelle vous prévoyez de déployer votre service.
Accédez au répertoire du dossier parent
parent_folderet créez un fichierrequirements.txtpour ajouter la dépendancegoogle-adk:google-adkVotre projet source inclut la structure suivante :
parent_folder/ ├── requirements.txt └── multi_tool_agent/ ├── __init__.py ├── agent.py └── .env
Votre application est terminée et prête à être déployée.
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.
Dans le répertoire du code source (
parent_folder), déployez sur Cloud Run en exécutant la commande suivante :gcloud run deploy --source .
Lorsque vous êtes invité à saisir le nom du service, appuyez sur Entrée pour accepter le nom par défaut, par exemple
weather-agent.Si vous êtes invité à activer des API supplémentaires sur le projet, par exemple l'API Artifact Registry, répondez en appuyant sur
y.Lorsque vous êtes invité à indiquer la région, sélectionnez la région de votre choix, par exemple
europe-west1.Si vous êtes invité à créer un dépôt dans la région spécifiée, répondez en appuyant sur
y.Si vous êtes invité à autoriser l'accès public: répondez
y. Cette invite peut ne pas s'afficher si une règle d'administration de restriction de domaine l'empêche. Pour plus d'informations, consultez la section Avant de commencer.
Patientez quelques instants jusqu'à la fin du déploiement. En cas de réussite, la ligne de commande affiche l'URL du service de l'agent déployé, au format suivant :
https://weather-agent-123456789101.us-central1.run.app/list-apps.
Exécuter votre agent
Pour utiliser l'agent ADK, vous pouvez exécuter les commandes curl suivantes :
Pour obtenir la liste des applications, exécutez la commande suivante :
curl -X GET SERVICE_URL/list-appsRemplacez SERVICE_URL par l'URL de votre service déployé.
Pour démarrer une session, exécutez la commande suivante :
curl -X POST SERVICE_URL/apps/multi_tool_agent/users/u_123/sessions/s_123 -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}'Pour interroger l'agent, exécutez la commande suivante :
curl -X POST SERVICE_URL/run \ -H "Content-Type: application/json" \ -d "{\"appName\": \"multi_tool_agent\",\"userId\": \"u_123\",\"sessionId\": \"s_123\",\"newMessage\": { \"role\": \"user\", \"parts\": [{ \"text\": \"What's the weather in New York today?\" }]}}"
L'agent renvoie les informations météorologiques dans les résultats de votre requête.
Pour en savoir plus et obtenir des exemples sur les commandes curl compatibles, consultez Utiliser le serveur d'API dans la documentation de l'ADK.
Libérer de l'espace
Pour éviter des frais supplémentaires sur votre Google Cloud compte, 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, vous pouvez toujours être facturé 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 dans la documentation d'Artifact Registry.
Supprimer votre service
Les services Cloud Run n'entraînent pas de coûts 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 :
Dans la Google Cloud console, accédez à la page Services de Cloud Run :
Recherchez le service que vous souhaitez supprimer dans la liste des services, puis cliquez la case correspondante pour le sélectionner.
Cliquez sur Supprimer pour supprimer toutes les révisions du service. Cette opération supprime également 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 : Google Cloud région du service.
Supprimer votre projet de test
La suppression de votre Google Cloud projet arrête la facturation de toutes les ressources de ce projet. Pour libérer toutes les Google Cloud ressources de votre projet, procédez comme suit :
Supprimez un Google Cloud projet :
gcloud projects delete PROJECT_ID
Étape suivante
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 :