Instructions et exigences de configuration de l'atelier
Protégez votre compte et votre progression. Utilisez toujours une fenêtre de navigation privée et les identifiants de l'atelier pour exécuter cet atelier.

Connecter une application à une instance Cloud SQL pour PostgreSQL

Atelier 35 minutes universal_currency_alt 1 crédit show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Ce contenu n'est pas encore optimisé pour les appareils mobiles.
Pour une expérience optimale, veuillez accéder à notre site sur un ordinateur de bureau en utilisant un lien envoyé par e-mail.

GSP919

Logo des ateliers d'auto-formation Google Cloud

Présentation

Cloud SQL est un service de base de données relationnelle entièrement géré pour MySQL, PostgreSQL et Microsoft SQL Server. Il propose de nombreux services pour les tâches administratives courantes, telles que les sauvegardes, la réplication et la journalisation. Vous pouvez facilement connecter vos applications à une instance Cloud SQL pour profiter de ces services utiles.

Dans cet atelier, vous allez d'abord créer un cluster Kubernetes, puis y déployer une application simple. Vous connecterez ensuite l'application à une instance Cloud SQL pour PostgreSQL fournie et vérifierez qu'elle peut y écrire et y lire des données.

Objectifs de l'atelier

  • Créer un cluster Kubernetes et y déployer une application simple
  • Connecter l'application à l'instance de base de données Cloud SQL pour PostgreSQL fournie
  • Vérifier que l'application peut écrire dans la base de données et en lire les données

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :

    • Le bouton "Ouvrir la console Google Cloud"
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).

    L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.

    {{{user_0.username | "Username"}}}

    Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".

  4. Cliquez sur Suivant.

  5. Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.

    {{{user_0.password | "Password"}}}

    Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".

  6. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  7. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas à des essais sans frais.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche. Icône du menu de navigation et champ de recherche

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

  2. Passez les fenêtres suivantes :

    • Accédez à la fenêtre d'informations de Cloud Shell.
    • Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

Résultat :

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Définir votre région et votre zone

Certaines ressources Compute Engine sont hébergées dans des régions et des zones. Une région est un emplacement géographique spécifique où vous pouvez exécuter vos ressources. Chaque région se compose d'une ou plusieurs zones.

Exécutez les commandes gcloud suivantes dans Cloud Shell pour définir la région et la zone par défaut de votre atelier :

gcloud config set compute/zone "{{{project_0.default_zone|ZONE}}}" export ZONE=$(gcloud config get compute/zone) gcloud config set compute/region "{{{project_0.default_region|REGION}}}" export REGION=$(gcloud config get compute/region)

Tâche 1 : Initialiser les API et créer un compte de service Cloud IAM

Pour effectuer cette tâche, vous devez initialiser les API et créer un compte de service IAM qui permettra à votre application de se connecter à la base de données Cloud SQL.

Activer les API

Vous devez activer les API requises pour cet atelier. Vous allez créer et transférer un conteneur vers Artifact Registry au cours d'une tâche ultérieure. Vous devez donc d'abord activer l'API Artifact Registry.

  1. Dans Cloud Shell, exécutez la commande suivante pour activer l'API Artifact Registry :
gcloud services enable artifactregistry.googleapis.com

Créer un compte de service pour Cloud SQL

Vous devez configurer les identifiants du compte de service IAM pour l'application que vous déploierez ultérieurement. Le compte de service doit être associé à un rôle qui lui permet de créer des bases de données Cloud SQL et d'y accéder.

  1. Dans Cloud Shell, créez un compte de service et associez-le au rôle d'administrateur Cloud SQL dans le projet de l'atelier :
export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export CLOUDSQL_SERVICE_ACCOUNT=cloudsql-service-account gcloud iam service-accounts create $CLOUDSQL_SERVICE_ACCOUNT --project=$PROJECT_ID gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$CLOUDSQL_SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudsql.admin"
  1. Dans Cloud Shell, créez et exportez les clés vers un fichier local :
gcloud iam service-accounts keys create $CLOUDSQL_SERVICE_ACCOUNT.json \ --iam-account=$CLOUDSQL_SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --project=$PROJECT_ID

Le fichier sera enregistré dans votre dossier d'accueil Cloud Shell.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un compte de service IAM pour Cloud SQL

Tâche 2 : Déployer une application GKE légère

Dans cette tâche, vous allez créer un cluster Kubernetes et y déployer une application Google Kubernetes Engine (GKE) légère. Vous allez configurer l'application pour lui donner accès à l'instance Cloud SQL fournie.

L'application fournie est une application Web Flask-SQLAlchemy simple appelée gMemegen. Elle permet de créer des mèmes en fournissant un ensemble de photos et en saisissant un texte d'en-tête et de pied de page. Elle stocke ces éléments dans la base de données et génère le mème dans un dossier local. Elle s'exécute sur un seul pod avec deux conteneurs : un pour l'application et un pour le proxy d'authentification Cloud SQL déployé dans le modèle side-car.

Un équilibreur de charge gérera les requêtes entre l'application et la base de données par l'intermédiaire du side-car. Il exposera une adresse IP Ingress externe qui vous permettra d'accéder à l'application dans votre navigateur.

Créer un cluster Kubernetes

Au cours de cette étape, vous allez créer un cluster Kubernetes minimal. Son déploiement dure environ deux minutes.

  1. Dans Cloud Shell, créez un cluster Kubernetes minimal comme suit :
ZONE={{{project_0.default_zone|ZONE}}} gcloud container clusters create postgres-cluster \ --zone=$ZONE --num-nodes=2

Créer des secrets Kubernetes pour l'accès à la base de données

Dans cette étape, vous allez créer une paire de secrets Kubernetes contenant les identifiants nécessaires pour vous connecter à l'instance et à la base de données Cloud SQL.

  1. Dans Cloud Shell, exécutez les commandes suivantes pour créer les secrets :
kubectl create secret generic cloudsql-instance-credentials \ --from-file=credentials.json=$CLOUDSQL_SERVICE_ACCOUNT.json kubectl create secret generic cloudsql-db-credentials \ --from-literal=username=postgres \ --from-literal=password=supersecret! \ --from-literal=dbname=gmemegen_db

Télécharger et créer le conteneur d'application GKE

Avant de pouvoir déployer l'application gMemegen sur votre cluster GKE, vous devez créer le conteneur et l'envoyer dans un dépôt.

  1. Dans Cloud Shell, téléchargez le code de l'application fourni et accédez au répertoire de l'application :
gsutil -m cp -r gs://spls/gsp919/gmemegen . cd gmemegen
  1. Créez des variables d'environnement pour la région, l'ID du projet et le dépôt Artifact Registry :
export REGION={{{ project_0.default_region | "REGION" }}} export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export REPO=gmemegen
  1. Configurez l'authentification Docker pour Artifact Registry :
gcloud auth configure-docker ${REGION}-docker.pkg.dev
  • Saisissez Y si vous êtes invité à confirmer l'opération.
  1. Créez le dépôt Artifact Registry :
gcloud artifacts repositories create $REPO \ --repository-format=docker --location=$REGION
  1. Créez une image Docker locale :
docker build -t ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v1 .

Pour cet atelier, vous pouvez ignorer l'avertissement concernant l'exécution de "pip" en tant qu'utilisateur racine. Toutefois, notez qu'il est généralement recommandé d'utiliser un environnement virtuel, surtout lorsque vous travaillez sur votre machine locale.

  1. Transférez l'image vers Artifact Registry :
docker push ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v1

Configurer et déployer l'application GKE

Vous devez modifier le fichier manifeste de déploiement Kubernetes pour l'application gMemegen afin qu'il pointe vers le bon conteneur. Vous devez aussi configurer le side-car du proxy d'authentification Cloud SQL avec la chaîne de connexion pour l'instance Cloud SQL PostgreSQL.

Les instructions expliquent comment modifier le fichier avec l'éditeur Cloud Shell, mais pour ces étapes, vous pouvez utiliser un autre éditeur, tel que vi ou nano, dans Cloud Shell.

  1. Dans la barre de menu Cloud Shell, cliquez sur Ouvrir l'éditeur pour ouvrir l'éditeur Cloud Shell.

  2. Dans le panneau Explorateur à gauche, développez le dossier gmemegen, puis sélectionnez gmemegen_deployment.yaml pour modifier le fichier.

  3. À la ligne 33, dans l'attribut image, remplacez ${REGION} par et ${PROJECT_ID} par . La ligne doit désormais se présenter comme suit :

image: {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "Project ID" }}}/gmemegen/gmemegen-app:v1
  1. À la ligne 60, remplacez ${REGION} par et ${PROJECT_ID} par . La ligne doit désormais se présenter comme suit :
-instances={{{ project_0.project_id | "Project ID" }}}:{{{ project_0.default_region | "REGION" }}}:postgres-gmemegen=tcp:5432

Pour vérifier que le nom de connexion est correct, accédez à Bases de données > SQL dans la console Cloud, sélectionnez l'instance postgres-gmemegen et comparez-la avec le nom de connexion dans le volet Présentation. Pour être valide, le nom de la connexion doit être au format PROJECT_ID:REGION:CLOUD_SQL_INSTANCE_ID.

  1. Enregistrez vos modifications en sélectionnant Fichier > Enregistrer dans le menu de l'éditeur Cloud Shell.

  2. Dans la console Cloud, cliquez sur Ouvrir le terminal pour rouvrir Cloud Shell. Vous devrez peut-être redimensionner la fenêtre du terminal en faisant glisser la poignée située en haut au centre de la barre de menu vers le bas pour afficher la fenêtre de la console Cloud au-dessus.

  3. Dans Cloud Shell, déployez l'application en exécutant la commande suivante :

kubectl create -f gmemegen_deployment.yaml
  1. Dans Cloud Shell, vérifiez que le déploiement a bien réussi en exécutant la commande suivante :
kubectl get pods

Le démarrage des pods peut prendre environ une minute, car ils doivent extraire l'image du dépôt. Répétez la commande ci-dessus jusqu'à ce qu'un pod avec deux conteneurs et à l'état En cours d'exécution s'affiche.

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer une application GKE légère

Tâche 3 : Connecter l'application GKE à un équilibreur de charge externe

Dans cette tâche, vous allez créer un équilibreur de charge pour gérer les requêtes entre les conteneurs de vos pods GKE et accéder à l'application via son adresse IP externe depuis votre navigateur.

Créer un équilibreur de charge pour rendre l'application GKE accessible depuis le Web

Au cours de cette étape, vous allez créer un service d'équilibreur de charge Kubernetes qui fournira une adresse IP publique à votre application.

  1. Dans Cloud Shell, exécutez la commande suivante pour créer un équilibreur de charge pour l'application :
kubectl expose deployment gmemegen \ --type "LoadBalancer" \ --port 80 --target-port 8080

Tester l'application pour générer des données

Au cours de cette étape, vous allez accéder à l'application gMemegen depuis votre navigateur Web.

L'interface est très simple. L'application s'ouvre sur la page d'accueil, qui affiche six images candidates pour la création de mèmes. Vous pouvez sélectionner une image en cliquant dessus.

La page Create Meme (Créer un mème) s'affiche. Saisissez deux éléments textuels, qui seront affichés en haut et en bas de l'image. Cliquez sur Submit (Envoyer) pour générer le mème et l'afficher. L'interface ne permet pas de naviguer à partir de la page du mème terminé. Vous devrez utiliser le bouton "Retour" du navigateur pour revenir à la page d'accueil.

Deux autres pages sont disponibles, Recent (Récents) et Random (Aléatoire), qui affichent respectivement un ensemble de mèmes générés récemment et un mème aléatoire. La génération de mèmes et la navigation dans l'UI génèrent de l'activité dans la base de données que vous pouvez consulter dans les journaux, comme décrit ci-dessous.

Attendez que l'équilibreur de charge expose une adresse IP externe, que vous pouvez récupérer comme suit :

  1. Dans Cloud Shell, copiez l'attribut d'adresse IP externe du champ LoadBalancer Ingress à partir du résultat de la commande suivante :
kubectl describe service gmemegen

Résultat :

Name: gmemegen Namespace: default Labels: app=gmemegen Annotations: Selector: app=gmemegen Type: LoadBalancer IP Families: IP: 10.3.240.201 IPs: 10.3.240.201 LoadBalancer Ingress: 34.67.122.203 Port: 80/TCP TargetPort: 8080/TCP NodePort: 31837/TCP Endpoints: 10.0.0.7:8080 Session Affinity: None External Traffic Policy: Cluster Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal EnsuringLoadBalancer 85s service-controller Ensuring load balancer Normal EnsuredLoadBalancer 36s service-controller Ensured load balancer

L'attribut LoadBalancer Ingress mettra environ une minute à s'afficher dans le résultat (voir ci-dessus). Répétez la commande jusqu'à ce qu'il soit visible avant de passer à l'étape suivante.

  1. Dans un navigateur, accédez à l'adresse IP Ingress de l'équilibreur de charge.

Vous pouvez créer un lien cliquable vers l'adresse IP externe de l'équilibreur de charge dans Cloud Shell à l'aide des commandes suivantes :

export LOAD_BALANCER_IP=$(kubectl get svc gmemegen \ -o=jsonpath='{.status.loadBalancer.ingress[0].ip}' -n default) echo gMemegen Load Balancer Ingress IP: http://$LOAD_BALANCER_IP
  1. Cliquez sur le lien dans Cloud Shell. L'application gMemegen s'exécute dans un nouvel onglet de votre navigateur.

  2. Créez un mème comme suit :

    • Sur la page Home (Accueil), cliquez sur l'une des images présentées.
    • Saisissez du texte dans les zones dédiées Top (Haut) et Bottom (Bas).
    • Cliquez sur le bouton Submit (Envoyer).

Votre nouveau mème s'affiche.

Mème pour l'application GKE connectée à Cloud SQL.

  1. Pour créer d'autres mèmes, utilisez le bouton "Retour" du navigateur afin de revenir à la page d'accueil.

  2. Pour voir les mèmes existants, cliquez sur Recent (Récents) ou Random (Aléatoire) dans le menu de l'application. (Notez que Random (Aléatoire) s'ouvre dans un nouvel onglet du navigateur.)

  3. Dans Cloud Shell, consultez l'activité de l'application en exécutant la commande suivante :

POD_NAME=$(kubectl get pods --output=json | jq -r ".items[0].metadata.name") kubectl logs $POD_NAME gmemegen | grep "INFO"

Cette requête interroge les journaux du conteneur gmemegen et affiche l'activité de l'application sur le pod, y compris les instructions SQL, qui sont consignées dans stderr lors de leur exécution.

Cliquez sur Vérifier ma progression pour valider l'objectif. Connecter l'application GKE à un équilibreur de charge externe

Tâche 4 : Vérifier les capacités de lecture/écriture complètes de l'application dans la base de données

Au cours de cette tâche, vous allez vérifier que l'application peut écrire dans la base de données et en lire les données.

Se connecter à la base de données et interroger une table d'application

Au cours de cette étape, vous allez vous connecter à l'instance Cloud SQL en exécutant PL/SQL dans Cloud Shell.

  1. Dans la console Google Cloud, accédez à Bases de données > SQL et sélectionnez l'instance postgres-gmemegen.

  2. Dans le volet Présentation, faites défiler la page jusqu'à Se connecter à cette instance, puis cliquez sur le bouton Ouvrir Cloud Shell.

  3. Exécutez la commande automatiquement renseignée dans Cloud Shell.

  4. Lorsque vous y êtes invité, saisissez le mot de passe : supersecret!

  5. À l'invite postgres=>, saisissez la commande suivante pour sélectionner la base de données gmemegen_db :

\c gmemegen_db
  1. Lorsque vous y êtes invité, saisissez le mot de passe : supersecret!

  2. À l'invite gmemegen_db=>, saisissez :

select * from meme;

Une ligne s'affiche pour chaque mème que vous avez généré avec l'application gMemegen.

Cliquez sur Vérifier ma progression pour valider l'objectif. Vérifier les capacités de lecture/écriture complètes de l'application dans sa base de données

Félicitations !

Dans cet atelier, vous avez configuré une application pour lui donner accès à une base de données Cloud SQL pour PostgreSQL. Vous avez créé un cluster Kubernetes et déployé une application simple de génération de mèmes sur ce cluster. Vous avez également connecté l'application à l'instance de base de données Cloud SQL pour PostgreSQL fournie et vérifié qu'elle pouvait y écrire et y lire des données.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 28 février 2025

Dernier test de l'atelier : 28 février 2025

Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Le meilleur moyen d'exécuter cet atelier consiste à utiliser une fenêtre de navigation privée. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.