1. Introduction
Découvrez AllStrides, une plate-forme de gestion d'événements full stack pour les communautés de remise en forme. Bien qu'il soit riche en fonctionnalités, son état actuel est "Local uniquement". Il s'appuie sur une base de données SQLite locale et sur l'exécution manuelle de Node.js. Pour que la communauté se développe, AllStrides a besoin de l'évolutivité, de la fiabilité et de la sécurité de Google Cloud.
Dans cet atelier de programmation, vous n'effectuerez pas de migration traditionnelle. Vous jouerez plutôt le rôle d'architecte produit et utiliserez la Gemini CLI comme partenaire agentif. En équipant Gemini de trois serveurs MCP (Model Context Protocol) Google Cloud, vous permettrez à l'IA de "contacter" et d'interagir directement avec les services Google Cloud. Vous commencerez par utiliser le MCP Developer Knowledge pour identifier la meilleure base de données Google Cloud pour l'application Allstrides. Vous utiliserez ensuite le MCP Cloud SQL pour provisionner une instance de base de données et déplacer vos données de communauté locales vers le cloud à l'aide d'une seule requête. Enfin, vous utiliserez le MCP Cloud Run pour conteneuriser l'application, ce qui rendra AllStrides opérationnel et accessible dans le monde entier.

Prérequis
- Connaissances de base concernant la console Google Cloud
- Compétences de base concernant l'interface de ligne de commande et Cloud Shell
Points abordés
- Déployer et configurer Gemini CLI pour qu'il fonctionne avec un MCP distant
- Utiliser le serveur MCP "Development Knowledge"
- Utiliser le serveur MCP distant Cloud SQL pour migrer des données vers le cloud
- Utiliser le serveur MCP distant Cloud Run pour déployer une application dans le cloud
- Utiliser Gemini CLI dans Google Cloud Shell
Prérequis
- Un compte Google Cloud et un projet Google Cloud
- Un navigateur Web tel que Chrome, compatible avec la console Google Cloud et Cloud Shell
2. Préparation
Configuration du projet
- Connectez-vous à la console Google Cloud. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)
Utilisez un compte personnel au lieu d'un compte professionnel ou scolaire.
- Créez un projet ou réutilisez-en un. Pour créer un projet dans la console Google Cloud, cliquez sur le bouton "Sélectionner un projet" dans l'en-tête. Une fenêtre pop-up s'ouvre.

Dans la fenêtre "Sélectionner un projet", cliquez sur le bouton "Nouveau projet" pour ouvrir une boîte de dialogue pour le nouveau projet.

Dans la boîte de dialogue, saisissez le nom de projet de votre choix et sélectionnez l'emplacement.

- Le nom du projet est le nom à afficher pour les participants au projet. Le nom du projet n'est pas utilisé par les API Google et peut être modifié à tout moment.
- L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Google Cloud génère automatiquement un ID unique, mais vous pouvez le personnaliser. Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire ou fournir le vôtre pour vérifier sa disponibilité. Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet, généralement identifié par le code de substitution PROJECT_ID.
- Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
Activer la facturation
Configurer un compte de facturation personnel
Si vous configurez la facturation à l'aide de crédits Google Cloud, vous pouvez ignorer cette étape.
- Cliquez sur ce lien et connectez-vous avec un compte Google personnel.
- Le résultat qui s'affiche doit ressembler à ceci :

- Cliquez sur le bouton CLIQUEZ ICI POUR ACCÉDER À VOS CRÉDITS. Vous serez redirigé vers une page vous permettant de configurer votre profil de facturation. Si un écran d'inscription à un essai sans frais s'affiche, cliquez sur "Annuler", puis continuez à associer la facturation.

- Cliquez sur "Confirmer". Vous êtes maintenant connecté à un compte de facturation d'essai Google Cloud Platform.

Configurer un compte de facturation personnel
Si vous configurez la facturation à l'aide de crédits Google Cloud, vous pouvez ignorer cette étape.
Pour configurer un compte de facturation personnel, cliquez ici pour activer la facturation dans la console Cloud.
Remarques :
- Cet atelier devrait vous coûter moins de 3 USD en ressources cloud.
- Vous pouvez suivre les étapes à la fin de cet atelier pour supprimer les ressources et éviter ainsi des frais supplémentaires.
- Les nouveaux utilisateurs peuvent bénéficier d'un essai sans frais pour profiter d'un crédit de 300$.
Démarrer Cloud Shell
Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.
Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :

Vous pouvez également appuyer sur G, puis sur S. Cette séquence activera Cloud Shell si vous êtes dans la console Google Cloud ou si vous utilisez ce lien.
Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.
3. Avant de commencer
Activer l'API Basic
Pour utiliser des services de bases de données gérées tels que Cloud SQL et d'autres services pour créer et déployer votre application sur Cloud Run, vous devez activer leurs API respectives dans votre projet Google Cloud.
Selon votre approche, vous pouvez éventuellement ignorer cette étape et laisser Gemini CLI activer toutes les API requises ultérieurement. Toutefois, dans ce cas, vous risquez de rencontrer des retards et de devoir répéter certaines étapes lors de l'exécution.
Dans le terminal Cloud Shell, assurez-vous que l'ID de votre projet est configuré :
gcloud config set project [YOUR-PROJECT-ID]
Définissez la variable d'environnement PROJECT_ID :
PROJECT_ID=$(gcloud config get-value project)
Activez tous les services nécessaires :
gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Résultat attendu :
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Operation "operations/acat.p2-812263612774-c2dbeef3-c4c1-4a7d-a4b2-b5380be65044" finished successfully.
Accorder des autorisations au compte de service
Vous devez accorder des autorisations d'administrateur Storage au compte de service Compute par défaut pour pouvoir créer et stocker des images d'application. Comme à l'étape précédente, vous avez la possibilité de déléguer cette tâche à Gemini CLI ultérieurement lors de l'exécution.
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID --member=serviceAccount:$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")-compute@developer.gserviceaccount.com --role=roles/storage.admin
Activer le MCP à distance
Les services MCP à distance doivent être explicitement activés pour chaque service d'un projet. Elles sont désactivées par défaut et permettent de réguler l'accès aux API au niveau du projet et du service.
Commençons par le service MCP Developer Knowledge. Pour activer l'API Developer Knowledge et le service MCP à distance, exécutez les commandes gcloud suivantes.
PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable developerknowledge.googleapis.com --project=$PROJECT_ID
Une fois l'API et le MCP distant pour Developer Knowledge activés, vous pouvez procéder de la même manière pour le service MCP distant Cloud SQL.
gcloud beta services mcp enable sqladmin.googleapis.com --project=$PROJECT_ID
Comme pour tous les MCP à distance pour les bases de données, l'accès et les autorisations MCP sont échelonnés, ce qui permet un accès précis au niveau du projet à l'API elle-même. Seul un principal (utilisateur ou compte de service) disposant du rôle Administrateur de l'utilisation des services (roles/serviceusage.serviceUsageAdmin) peut le faire.
De plus, seuls les principaux disposant du rôle Utilisateur de l'outil MCP (roles/mcp.toolUser) peuvent effectuer des appels à l'API MCP à distance.
Par exemple, si vous ne disposez pas du rôle Administrateur Cloud SQL (roles/cloudsql.admin), vous ne pourrez pas créer, cloner ni mettre à jour d'instance dans le projet.
Pour en savoir plus sur les rôles et autorisations requis, consultez la documentation.
Comme nous pouvons le voir, l'autorisation progressive et précise nous protège contre les attaques non autorisées, même lorsque le point de terminaison MCP distant est activé, ce qui le rend suffisamment sûr pour notre production.
Le prochain MCP distant que nous allons activer concerne le service Cloud Run. L'approche pour l'activation et l'accès au MCP à distance Cloud Run est similaire à celle du MCP à distance Cloud SQL.
Activez le service Cloud Run MCP à l'aide de la commande suivante.
gcloud beta services mcp enable run.googleapis.com --project=$PROJECT_ID
Enfin, nous pouvons vérifier que tous les MCP distants sont activés dans notre projet à l'aide de la commande suivante.
gcloud beta services mcp list --project=$PROJECT_ID
Résultat attendu :
student@cloudshell:~ (test-project-001-402417)$ gcloud beta services mcp list --project=$PROJECT_ID NAME: services/developerknowledge.googleapis.com MCP_ENDPOINT: developerknowledge.googleapis.com NAME: services/run.googleapis.com MCP_ENDPOINT: run.googleapis.com/mcp NAME: services/sqladmin.googleapis.com MCP_ENDPOINT: sqladmin.googleapis.com/mcp
Maintenant que toutes nos API et tous nos services sont activés, nous devons configurer Gemini CLI.
4. Configurer Gemini CLI
Cet atelier est conçu pour utiliser Gemini CLI comme agent principal pour effectuer la plupart des actions. La première étape consiste à le configurer pour qu'il fonctionne avec des serveurs MCP distants. Il est également fortement recommandé d'utiliser la dernière version de Gemini CLI et la dernière version de Gemini, comme Gemini-3-pro ou Gemini-3-flash (actuellement en aperçu).
Si vous disposez déjà de la dernière version de Gemini CLI et que vous l'avez configurée pour utiliser les derniers modèles Gemini, vous pouvez ignorer les deux prochaines étapes et passer directement à l'étape 3.
1. Obtenir une clé API Gemini
Pour utiliser les derniers modèles Gemini dans votre Gemini CLI, vous devez la configurer avec une authentification par clé API. Nous pouvons obtenir la clé API dans Google AI Studio.
- Accédez à Google AI Studio > Obtenir une clé API dans votre navigateur.
- Sur le côté droit de l'écran, cliquez sur le bouton
Create API key. - Dans la fenêtre pop-up, sélectionnez votre projet ou importez-le s'il n'est pas visible.

- Créez la clé API.
- Vous pouvez copier la clé à l'aide du bouton de copie situé sur la droite.

La clé est préparée et nous pouvons maintenant l'utiliser pour Gemini CLI.
2. Configurer Gemini CLI
Vous pouvez configurer Gemini CLI à l'aide du fichier de configuration des paramètres ou de manière interactive à l'aide de la commande /settings. Nous voulons que nos paramètres soient conservés dans notre fichier de paramètres.
Nous allons d'abord créer un répertoire pour notre projet. Appelons le répertoire projectmcp et passons à ce répertoire à l'aide des commandes suivantes.
mkdir ~/projectmcp
cd ~/projectmcp
Dans le répertoire que nous allons créer, nous allons créer un répertoire pour les fichiers de configuration Gemini et exécuter toutes nos commandes. Par défaut, Gemini CLI utilise un fichier de configuration de portée utilisateur et des extensions installées dans le répertoire ~/.gemini. Nous allons toutefois créer notre propre configuration de champ d'application du projet dans notre répertoire ~/projectmcp. Commençons par créer le répertoire et les fichiers de configuration.
mkdir ~/projectmcp/.gemini
touch ~/projectmcp/.gemini/settings.json
Ouvrez ensuite le fichier ~/projectmcp/.gemini/settings.json à l'aide de l'éditeur Cloud Shell.
edit ~/projectmcp/.gemini/settings.json
Dans la fenêtre de l'éditeur qui s'ouvre, ajoutez la configuration suivante.
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
Après avoir modifié le fichier, vous pouvez utiliser ctrl+s pour enregistrer vos modifications et revenir au terminal en cliquant sur le bouton Open Terminal.

Les fichiers settings.json ci-dessus définissent votre type d'authentification Gemini CLI sur "gemini-api-key". Vous devez fournir la clé au modèle. Pour ce faire, créez un fichier .env dans le répertoire avec lequel vous souhaitez utiliser Gemini CLI, puis stockez votre clé API pour l'authentification Gemini CLI en tant que variable d'environnement. Elle sera récupérée lorsque vous démarrerez l'IDE.
Modifions le fichier à l'aide de l'éditeur Cloud Shell.
edit ~/projectmcp/.env
Stockez la clé API créée à l'étape 1.
GEMINI_API_KEY= <YOUR_API_KEY>
Vous pouvez maintenant revenir au terminal et continuer. L'étape suivante consiste à mettre à jour votre Gemini CLI vers la dernière version. La version dans Google Cloud Shell ou dans votre environnement peut être obsolète et ne pas fonctionner correctement avec les dernières configurations et les services MCP. Il est donc important de mettre à jour Gemini CLI vers la dernière version et de le démarrer. Dans le terminal, exécutez la commande suivante.
cd ~/projectmcp/
npm install -g @google/gemini-cli@latest
Vous pouvez maintenant vérifier la version. Veuillez noter que si vous travaillez dans Google Cloud Shell, il est possible que le shell revienne à la version précédente chaque fois que vous le redémarrez. Les modifications que vous apportez à Gemini CLI elle-même ne sont pas permanentes dans Cloud Shell.
gemini --version
La dernière version de Gemini CLI devrait s'afficher (version 0.27 au moment de la rédaction de l'atelier). Pour vérifier la dernière version de Gemini CLI, cliquez ici. Nous pouvons maintenant le démarrer et nous assurer qu'il utilise le dernier modèle Gemini. Exécutez la commande suivante dans le dossier de votre projet pour démarrer Gemini CLI.
gemini
Lorsque Gemini CLI démarre, vous pouvez vérifier la version et le modèle en exécutant la commande /about dans l'interface. Vous devriez obtenir un résultat semblable à l'image ci-dessous.

Vous pouvez voir qu'il utilise le dernier modèle Gemini-3.
2. Configurer des serveurs MCP dans Gemini CLI
Il est maintenant temps d'ajouter tous nos serveurs MCP activés. Vous pouvez les activer de deux manières dans Gemini CLI : via les extensions ou directement dans les paramètres. Dans cet atelier, vous allez utiliser le fichier setting.json de votre projet et y ajouter les informations d'authentification des serveurs MCP.
- Pour le serveur MCP Developer Knowledge, vous devez créer une clé API pour être autorisé sur le point de terminaison.
Procédez comme suit :
- Dans la console Google Cloud du projet dans lequel vous avez activé l'API, accédez à la page Identifiants.
- Cliquez sur "Créer des identifiants", puis sélectionnez "Clé API" dans le menu. La boîte de dialogue "Clé API créée" affiche la chaîne correspondant à la clé que vous venez de créer.
- Cliquez sur le lien
Edit API keydans la boîte de dialogue. - Dans le champ
Name, saisissez un nom pour la clé. Par exemple,DK API Key. - Sous "Restrictions relatives aux API", sélectionnez
Restrict key. - Dans la liste "Sélectionner des API", activez
Developer Knowledge API, puis cliquez sur OK. - Cliquez sur "Enregistrer".

Si vous avez besoin d'utiliser la clé, vous pouvez accéder à la page et cliquer sur "Afficher la clé" à droite.

Vous devez maintenant stocker cette clé dans la configuration. La section MCP de notre fichier settings.json se présente comme suit (vous devez y indiquer la valeur de votre clé API DK). Voici un exemple de la section MCP du fichier settings.json si seule l'API DK est ajoutée. Plus loin dans l'atelier, vous verrez également à quoi devrait ressembler le fichier settings.json avec tous les serveurs MCP.
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
}
},
- Vous pouvez ensuite ajouter la configuration de notre serveur MCP Cloud SQL. Pour le MCP Cloud SQL, vous utiliserez vos identifiants Google au lieu de l'API. Il est plus sécurisé et nous permet de définir les rôles et le champ d'application des actions autorisées pour un utilisateur. Voici la configuration du serveur MCP. Veuillez remplacer "<YOUR_GCP_PROJECT>" par l'ID de votre projet.
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
- Le prochain bloc JSON contient la configuration du serveur MCP Cloud Run. Il suit le même schéma que l'exemple ci-dessus et utilise les identifiants Google pour l'authentification et l'autorisation. Voici un exemple de configuration.
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
Tous ces éléments doivent être ajoutés au fichier ~/projectmcp/.gemini/settings.json.
Ouvrez le fichier ~/projectmcp/.gemini/settings.json à l'aide de l'éditeur Cloud Shell.
edit ~/projectmcp/.gemini/settings.json
Remplacez le contenu par la configuration suivante. Veuillez saisir votre clé API et votre ID de projet dans les champs "X-Goog-Api-Key" et "X-Goog-User-Project" en fonction de votre environnement.
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
},
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
Nous pouvons maintenant démarrer la CLI Gemini et voir tous nos serveurs MCP activés.
cd ~/projectmcp/
gemini
Lorsque Gemini CLI est démarrée, vous pouvez exécuter la commande /mcp pour afficher tous les serveurs MCP opérationnels.

5. Préparer l'application
Dans l'exemple suivant, vous allez essayer de migrer votre exemple d'application locale vers Google Cloud. Nous allons d'abord installer l'application en local et la tester.
1. Cloner le code source
Nous devons cloner notre application depuis le dépôt GitHub. Dans Cloud Shell ou votre terminal local, exécutez la commande dans le dossier du projet.
git clone https://github.com/google/mcp.git
2. Démarrer l'application en local
Testons l'application et chargeons des exemples de données
Dans la même interface système, accédez au dossier de l'application et démarrez-la à l'aide de la commande
cd mcp/examples/allstrides
./start_allstrides.sh
3. Tester l'application
Si vous utilisez Cloud Shell, appuyez sur le bouton Web preview en haut de la fenêtre Cloud Shell, puis sélectionnez Preview on port 8080.

Un nouvel onglet de navigateur s'ouvre avec l'interface de l'application, dans laquelle vous pouvez, par exemple, cliquer sur le bouton Events.

Vous n'avez aucun événement pour le moment.
4. Charger des exemples de données
Vous pouvez éventuellement vous inscrire dans l'application et créer vos propres événements, messages de chat et utilisateurs, ou utiliser les exemples de données fournis avec l'application.
Ouvrez un autre onglet Cloud Shell à l'aide du signe "+" situé en haut.

Dans le nouvel onglet Cloud Shell, accédez au répertoire de l'application et exécutez l'importation à l'aide de l'utilitaire sqlite3 :
cd ~/projectmcp/mcp/examples/allstrides
sqlite3 allstrides.db < seed_data.sql
Si vous revenez à la page de l'application, puis que vous cliquez à nouveau sur le bouton "Événements", vous devriez voir plusieurs événements.

Vous pouvez également tester la page de chat et y voir des messages.
Vous pouvez maintenant fermer le deuxième onglet en saisissant exit.
exit
Arrêtez l'application dans le premier onglet à l'aide de la combinaison Ctrl+C.
6. Test des connaissances des développeurs MCP
Le MCP Developer Knowledge nous permet d'utiliser des documents Google directement à partir de nos outils agnostiques. Nous pouvons ainsi vérifier des instructions, créer des tutoriels et effectuer d'autres tâches qui peuvent être complétées par la dernière documentation Google.
Démarrez votre Gemini CLI et listez les outils MCP disponibles sur le serveur MCP Developer Knowledge.
/mcp
Pour le MCP Developer Knowledge, vous devriez voir trois outils disponibles :
Résultat attendu :
🟢 DeveloperKnowledge - Ready (3 tools) Tools: - batch_get_documents - get_document - search_documents
Notre tâche consiste à migrer notre application vers Google Cloud. Cela signifie que nous devons passer de la base de données Sqlite locale à une solution plus évolutive et native du cloud. Demandons à Gemini d'analyser le code de notre application et de nous conseiller sur la solution de base de données.
Dans le prompt Gemini CLI, saisissez ce qui suit :
Hello, I need to choose a database platform for my allstrides application in Google Cloud. Can you analyze documentation and prepare a tutorial to choose the correct database engine?
Gemini CLI commencera par analyser votre code, puis vous demandera d'exécuter le
Résultat attendu
? search_documents (DeveloperKnowledge MCP Server) {"query":"choose google cloud database"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
Nous pouvons voir que l'outil utilise MCP pour ancrer la réponse dans la documentation Google. Autorisez l'exécution de la demande MCP Developer Knowledge. Il peut vous poser une ou deux questions supplémentaires pour obtenir plus d'informations avant de vous fournir la réponse. N'autorisez aucune modification dans votre application pour le moment.
À la fin, il a créé un tutoriel avec un résumé où Cloud SQL pour PostgreSQL a été défini comme le meilleur choix pour le backend de base de données. En raison de la nature non déterministe des modèles d'IA générative, vous pouvez obtenir une réponse légèrement différente.
Résultat attendu :
By switching to Cloud SQL for PostgreSQL, AllStrides gains a robust, scalable foundation suitable for production deployment on Google Cloud. The transition is straightforward due to the use of Sequelize ORM.
Nous pouvons également vous demander de préparer un guide de migration des données par étapes. Envoyez un nouveau prompt à Gemini CLI :
I agree with the recommendation to use Cloud SQL for PostgreSQL as the new database for my application. Can you prepare a detailed migration tutorial based on Google documentation on how to move data from my local database to Cloud SQL in the cloud?
Là encore, nous attendons de Gemini CLI qu'il utilise le MCP Developer Knowledge comme source de vérité lors de la préparation du tutoriel. La séquence d'actions effectuées par Gemini CLI peut être légèrement différente selon le modèle exact et d'autres facteurs. Par exemple, il peut demander de préparer d'abord les scripts de migration, puis de travailler sur la documentation finale du tutoriel.
Voici l'un des exemples où il demande l'autorisation d'exécuter le MCP Developer Knowledge :
? search_documents (DeveloperKnowledge MCP Server) {"query":"migrate local database to Cloud SQL for PostgreSQL"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
│ │
│ ⊷ search_documents (DeveloperKnowledge MCP Server) {"query":"import data into Cloud SQL PostgreSQL"}
Pendant l'exécution, Gemini CLI peut vous demander d'exécuter certaines commandes. Par exemple, pour mieux comprendre le schéma de données et préparer des instructions correctes pour la migration des données.
Enfin, il doit préparer des instructions détaillées pour la migration des données.
Vous pouvez ensuite demander à Gemini CLI de rédiger le tutoriel.
Please write the tutorial down
Il créera un fichier Markdown contenant le tutoriel.
Résultat attendu :
✦ I have created a detailed migration guide for you. You can find the tutorial in the new file: MIGRATION_GUIDE.md. This guide covers: 1. Exporting your local SQLite data to CSV format. 2. Creating the PostgreSQL schema with compatible data types. 3. Uploading data to Google Cloud Storage. 4. Importing data into Cloud SQL in the correct order to respect relationships. 5. Resetting ID sequences to ensure new data can be added without errors.
Dans l'étape suivante, nous allons utiliser Cloud SQL MCP pour préparer notre base de données et migrer les données.
7. Tester le MCP à distance Cloud SQL
1. Créer une instance Cloud SQL
Vous pouvez commencer par vérifier les outils disponibles dans le serveur MCP Cloud SQL en saisissant /mcp dans Gemini CLI.
/mcp
Nous disposons actuellement des outils suivants.
Résultat attendu :
🟢 Cloud SQL MCP Server - Ready (11 tools) Tools: - clone_instance - create_instance - create_user - execute_sql - get_instance - get_operation - import_data - list_instances - list_users - update_instance - update_user
Nous avons déjà décidé d'utiliser Cloud SQL pour Postgres comme backend pour notre application dans Google Cloud. Nous pouvons maintenant demander à Gemini de créer une instance Cloud SQL pour nous.
Dans le prompt Gemini CLI, saisissez votre requête comme suit :
Please create a Cloud SQL for Postgres instance with appropriate edition and version in the us-central1 region to be a backend for our application with a public IPs in the current project with 2 CPU and 8 GB memory.
Pour éviter des appels supplémentaires afin d'identifier votre projet actuel, vous pouvez spécifier explicitement son ID lorsque vous saisissez votre requête. Si le nom du projet n'a pas été utilisé dans le contexte avant, le modèle demandera l'ID du projet ou demandera d'exécuter la commande gcloud pour identifier le projet.
Il analysera ensuite les outils existants et demandera à exécuter les outils MCP Cloud SQL. La demande d'approbation suivante devrait s'afficher.
? create_instance (Cloud SQL MCP Server MCP Server) {"tier":"db-custom-2-8192","region":"us-central1","project":"gleb-test-short-001-486416","databaseVersion":"POSTGRES_17","edition":"ENTERPRISE","nam... ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: create_instance │
│ │
│ Allow execution of MCP tool "create_instance" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
Après avoir lancé l'exécution, il vous demandera de surveiller l'état de l'opération et les éventuelles demandes de mise en veille entre les vérifications. comme celui ci-dessous, par exemple :
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
Il serait suivi d'un outil get_operation pour le MCP Cloud SQL Server.
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ? get_operation (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","operation":"73c39ca7-65fe-46d1-bdb8-0dfa00000032"} ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: get_operation │
│ │
│ Allow execution of MCP tool "get_operation" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once
Après la dernière requête get_instance, vous devriez obtenir des informations sur l'instance créée. comme celui ci-dessous, par exemple :
Résultat attendu :
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
Il serait suivi d'un outil get_operation pour le serveur MCP Cloud SQL et de l'appel d'outil MCP get_insance. Vous pouvez être soumis à des vérifications supplémentaires et à des appels exécutés par Gemini CLI pour vérifier que la tâche a bien été effectuée.
The Cloud SQL for Postgres instance allstrides-db has been successfully created in the us-central1 region with 2 vCPUs and 8 GB of RAM. Instance Details: - Project ID: gleb-test-short-001-486416 - Instance Name: allstrides-db - Public IP Address: 35.226.187.246 - Database Version: POSTGRES_17 - Machine Type: db-custom-2-8192 (2 vCPU, 8 GB RAM) - Region: us-central1 - Connection Name: gleb-test-short-001-486416:us-central1:allstrides-db The instance is configured with public IP enabled, IAM authentication turned on, and Data API access allowed.
2. Migrer les données
L'instance est prête. Nous pouvons maintenant continuer à migrer toutes nos données de la base de données SQLite existante vers une nouvelle base de données dans le cloud.
Dans le prompt Gemini CLI, saisissez la requête suivante :
Now when we have our Cloud SQL instance ready it is time to move the data from our local database. Please migrate all the data to a new database in our Cloud SQL instance where the new user for application would be the database owner? Let's call the new database allstrides-db and the user allstrides. Please use our MCP tools whenever it is possible.
Lors de l'exécution, Gemini CLI analysera notre modèle de données et demandera des autorisations pour exécuter certaines commandes. Le workflow n'est pas déterministe à 100 % et certaines étapes peuvent être différentes.
Voici un exemple de la façon dont cela pourrait commencer.
Résultat attendu :
✦ I will read the allstrides/README.md and allstrides/seed_data.sql files to understand the local database structure and data. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ✓ ReadFile allstrides/README.md │ │ │ │ │ │ ✓ ReadFile allstrides/seed_data.sql │ │ │ ╰─────────────────────────────────────────────────────────────────────────
Après plusieurs étapes, il utilisera Cloud SQL MCP pour préparer la base de données et l'utilisateur, et enfin migrer les données. L'une des premières actions qu'il effectue sur la base de données consiste à vous ajouter en tant qu'utilisateur IAM et à vous accorder les autorisations nécessaires pour créer une base de données et un utilisateur. Vous devez disposer de droits suffisants dans Google Cloud en tant qu'IAM.
Voici un exemple de certaines étapes du workflow.
Résultat attendu :
✓ execute_sql (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","instance":"allstrides-db","sqlStatement":"CREATE DATABASE \"allstrides-db\";","database":"postgres"} │
│ │
│ { │
│ "messages": [ │
│ { │
│ "message": "Execution complete. 1 result set(s) returned.", │
│ "severity": "INFO" │
│ } │
│ ], │
│ "metadata": { │
│ "sqlStatementExecutionTime": "0.075591388s" │
│ }, │
│ "results": [ │
│ {} │
│ ] │
│ } │
│
3. Déployer l'application sur Cloud Run
La base de données est maintenant créée et les données de l'application locale ont été migrées vers votre base de données Cloud SQL. Vous êtes maintenant prêt à déployer votre application sur Cloud Run. Lors du déploiement, vous utiliserez une combinaison du SDK Google Cloud pour créer l'image dans Google Cloud, puis la déployer à l'aide de Cloud Run MCP.
Dans Gemini CLI, exécutez le prompt suivant.
Now, when all the data is successfully migrated to our Cloud SQL instance allstrides-db we can migrate our allstrides application to Cloud Run and deploy using my Cloud SQL database. Please put the username and the password for my database user user to Secret Manager to not show openly in Cloud Run.
Let's build the image first and then use MCP to create the Cloud Run service.
Lors de l'exécution, il vérifiera les API, préparera les données pour Secret Manager et créera les secrets requis. Il mettra également à jour l'application pour qu'elle fonctionne avec la base de données PostgreSQL et ajoutera les modules npm nécessaires.
Ensuite, après avoir créé l'image et l'avoir placée dans Artifact Registry, il utilise le service MCP pour déployer l'application sur Cloud Run.
Voici un exemple d'appel du MCP Cloud Run
Résultat attendu :
✦ I will deploy the 'allstrides' service to Cloud Run using the deploy_service_from_image tool. I will configure the environment variables and map the
database credentials from Secret Manager. Note that the MCP tool's schema does not explicitly expose the Cloud SQL instance attachment parameter, which is
typically required for the Unix socket connection (/cloudsql/...) to work. I will proceed with the deployment as requested, but if the database connection
fails due to the missing instance attachment, we may need to use gcloud to update that specific configuration.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Action Required 1 of 1 │
│ │
│ ? deploy_service_from_image (CloudRun MCP Server) {"service":{"invokerIamDisabled":true,"name":"projects/gleb-test-short-001-486416/locations/us-centra... │
│ │
│ MCP Server: CloudRun │
│ Tool: deploy_service_from_image │
│ Allow execution of MCP tool "deploy_service_from_image" from server "CloudRun"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Le chemin exact pour effectuer toutes les opérations peut varier d'une exécution à l'autre. Les agents d'IA choisissent le chemin en fonction du contexte, de la sortie de la commande et de plusieurs autres variables. C'est là que réside la force des logiciels agentiques d'IA : ils peuvent réagir, ajuster leur approche et réessayer des étapes pour accomplir des tâches et obtenir des résultats positifs.
Votre application allstrides devrait maintenant être déployée et en cours d'exécution dans Cloud Run, et connectée à votre base de données Cloud SQL.
Voici ce que vous pourrez voir à la fin.
Résultat attendu :
✦ The application allstrides has been successfully migrated to Cloud Run and is connected to the Cloud SQL database allstrides-db.
Deployment Details:
* Service URL: https://allstrides-812263612774.us-central1.run.app
* Database: allstrides-db (PostgreSQL)
* Database User: allstrides (Password updated and stored in Secret Manager)
* Secrets: db-user and db-pass are mounted as environment variables.
* Region: us-central1
Steps Taken:
1. Database Configuration:
* Updated the allstrides database user password.
* Created db-user and db-pass secrets in Google Cloud Secret Manager.
* Updated database.ts to support PostgreSQL connections via Cloud SQL socket.
2. Build:
* Built the container image gcr.io/gleb-test-short-001-486416/allstrides using Cloud Build.
3. Deployment:
* Initiated deployment using the MCP deploy_service_from_image tool.
* Granted the Secret Manager Secret Accessor role to the Cloud Run service account.
* Attached the Cloud SQL instance connection using gcloud (as the MCP tool currently lacks this specific configuration parameter).
The application is now serving traffic and successfully connected to the database.
Lorsque vous ouvrez l'URL fournie dans le navigateur, la page de l'application doit s'afficher.

Tous nos événements devraient y être visibles.

Félicitations ! Vous avez pu utiliser Gemini CLI et les services MCP distants de Google Cloud pour migrer votre application locale vers le cloud. Le déploiement est terminé et toutes les ressources peuvent être nettoyées.
8. Nettoyer l'environnement
Le moyen le plus simple de nettoyer l'environnement consiste à demander à Gemini CLI de supprimer tous les composants que vous avez créés. Il doit conserver tous les composants dans le contexte. Toutefois, si vous avez été déconnecté et que vous n'avez pas d'historique enregistré, vous pouvez essayer d'être plus précis et demander à nettoyer le service Cloud Run, l'image et l'instance Cloud SQL. Pour supprimer le service, il doit être authentifié auprès de l'utilisateur disposant des autorisations requises et qui utilisera la commande gcloud.
Voici un exemple de requête :
Now, when we've tested the application can you please delete the created Cloud Run service, the image we've built and the Cloud SQL instance we've created in the project.
Une fois la suppression effectuée, vous pouvez utiliser les services MCP à distance pour vérifier que le service Cloud Run ou l'instance Cloud SQL ont bien été supprimés.
Can you please list all Cloud SQL instances in the project and Cloud Run services in the project.
Un message semblable à celui-ci devrait s'afficher à la fin :
Résultat attendu :
✦ There are currently no Cloud SQL instances or Cloud Run services (in us-central1) in the project gleb-test-short-001-486416.
Les étapes de l'atelier sont maintenant terminées.
9. Félicitations
Bravo ! Vous avez terminé cet atelier de programmation.
Parcours de formation Google Cloud
Points abordés
- Déployer et configurer Gemini CLI pour qu'elle fonctionne avec les MCP Google Cloud à distance
- Utiliser Development KnowledgeMCP
- Utiliser le programme de migration Cloud SQL pour migrer des données vers le cloud
- Utiliser Cloud Run MCP pour déployer une application dans le cloud
- Utiliser Gemini CLI dans Google Cloud Shell
10. Enquête
Résultat :