arrow_back

Découvrir Cloud Run

Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Découvrir Cloud Run

Atelier 1 heure universal_currency_alt 5 crédits show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Présentation

Logo Cloud Run

Cloud Run est une plate-forme de calcul gérée qui permet d'exécuter des conteneurs sans état accessibles via des requêtes HTTP. Cloud Run fonctionne sans serveur : il élimine toute gestion de l'infrastructure pour vous permettre de vous concentrer sur ce qui compte le plus : créer des applications de qualité.

Cloud Run étant basé sur Knative, vous pouvez exécuter vos conteneurs soit de façon entièrement gérée avec Cloud Run, soit dans votre cluster Google Kubernetes Engine avec Cloud Run sur GKE.

L'objectif de cet atelier est de créer une image d'application conteneurisée simple et de la déployer sur Cloud Run.

Objectifs

Dans cet atelier, vous apprendrez à effectuer les tâches suivantes :

  • Activer l'API Cloud Run
  • Créer une application Node.js simple pouvant être déployée en tant que conteneur sans serveur et sans état
  • Conteneuriser votre application et l'importer dans Artifact Registry
  • Déployer une application conteneurisée sur Cloud Run
  • Supprimer les images inutiles pour éviter des frais de stockage supplémentaires

Préparation

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up 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 gratuits.

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

Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Google Cloud Shell

Google 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.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

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.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.

Référence

Commandes Linux de base

Vous trouverez ci-dessous une liste de référence de quelques commandes Linux très basiques pouvant apparaître dans les instructions ou les blocs de code de cet atelier.

Commande --> Action . Commande --> Action
mkdir (make directory) Créer un dossier . cd (change directory) Accéder à un autre dossier
ls (list) Afficher les fichiers et les dossiers du répertoire . cat (concatenate) Lire le contenu d'un fichier sans utiliser d'éditeur
apt-get update Mettre à jour la bibliothèque du gestionnaire de packages . ping Signal permettant de tester la joignabilité d'un hôte
mv (move) Déplacer un fichier . cp (copy) Copier un fichier
pwd (present working directory) Afficher l'emplacement actuel . sudo (super user do) Accorder des droits d'administrateur supérieurs

Tâche 1 : Activer l'API Cloud Run et configurer votre environnement de shell

  1. Dans Cloud Shell, activez l'API Cloud Run :
gcloud services enable run.googleapis.com
  1. Si vous y êtes invité, autorisez l'utilisation de vos identifiants. Un message semblable à celui qui suit s'affiche pour vous indiquer que l'opération s'est correctement déroulée :
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. Remarque : Vous pouvez également activer l'API dans la section API et services de la console.
  1. Définissez la région de calcul :
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
  1. Créez une variable d'environnement LOCATION :
LOCATION="{{{project_0.default_region | Region}}}"

Tâche 2 : Coder l'exemple d'application

Dans cette tâche, vous allez créer une application NodeJS simple basée sur Express et répondant aux requêtes HTTP.

  1. Dans Cloud Shell, créez un nouveau répertoire nommé helloworld et déplacez-y votre vue :
mkdir helloworld && cd helloworld
  1. Vous allez ensuite créer et modifier des fichiers. Pour modifier des fichiers, utilisez nano ou l'éditeur de code Cloud Shell en cliquant sur le bouton Ouvrir l'éditeur de Cloud Shell.

  2. Créez un fichier package.json, puis ajoutez-y le contenu suivant :

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

Le fichier ci-dessus contient principalement une commande de script de démarrage et une dépendance associée au framework d'application Web Express.

  1. Appuyez sur CTRL+X, puis sur Y et sur Entrée pour enregistrer le fichier package.json.

  2. Dans le même répertoire, créez ensuite un fichier index.js, et copiez-y les lignes suivantes :

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

Ce code crée un serveur Web de base qui va écouter le port défini par la variable d'environnement PORT. Votre application est maintenant terminée. Elle est prête à être conteneurisée et importée dans Artifact Registry.

  1. Appuyez sur CTRL+X, puis sur Y et sur Entrée pour enregistrer le fichier index.js.
Remarque : Vous pouvez utiliser de nombreux autres langages avec Cloud Run. Des instructions pour Go, Python, Java, PHP, Ruby, les scripts shell et bien d'autres sont disponibles dans les guides de démarrage rapide.

Tâche 3 : Conteneuriser votre application et l'importer dans Artifact Registry

  1. Pour conteneuriser l'application exemple, créez un fichier nommé Dockerfile dans le même répertoire que les fichiers sources, puis copiez le contenu suivant :
nano Dockerfile # Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-slim # Create and change to the app directory. WORKDIR /usr/src/app # Copy application dependency manifests to the container image. # A wildcard is used to ensure copying both package.json AND package-lock.json (when available). # Copying this first prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. # If you add a package-lock.json, speed your build by switching to 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web service on container startup. CMD [ "npm", "start" ]
  1. Appuyez sur CTRL+X, puis sur Y et sur Entrée pour enregistrer le fichier Dockerfile.

  2. Créez ensuite votre image de conteneur à l'aide de Cloud Build. Pour cela, exécutez la commande suivante à partir du répertoire contenant le fichier Dockerfile (vous constaterez dans la commande que la variable d'environnement $GOOGLE_CLOUD_PROJECT contient l'ID du projet de l'atelier) :

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

Cloud Build est un service qui exécute vos compilations sur Google Cloud. Il exécute une série d'étapes de compilation. Chacune d'elles est exécutée dans un conteneur Docker afin de générer votre conteneur d'application (ou tout autre artefact) et de le transférer vers Artifact Registry. Cette procédure s'effectue par le biais d'une seule commande.

Une fois le transfert dans le registre terminé, un message SUCCESS contenant le nom de l'image (gcr.io/[PROJECT-ID]/helloworld) s'affiche. L'image est stockée dans Artifact Registry et peut être réutilisée si vous le souhaitez.

  1. Exécutez la commande suivante pour lister toutes les images de conteneur associées à votre projet actuel :
gcloud container images list
  1. Enregistrez gcloud comme assistant d'identification pour tous les registres Docker compatibles avec Google :
gcloud auth configure-docker Remarque : L'invite Do you want to continue? (Y/N)? (Voulez-vous continuer (Oui/Non) ?) peut s'afficher. Si vous acceptez, saisissez Y.
  1. Pour exécuter et tester l'application en local depuis Cloud Shell, démarrez-la à l'aide de cette commande docker standard :
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Dans la fenêtre Cloud Shell, cliquez sur Aperçu sur le Web et sélectionnez Prévisualiser sur le port 8080.

Une fenêtre de navigateur doit normalement s'ouvrir et afficher le message "Hello World!". Vous auriez aussi pu utiliser tout simplement la commande curl localhost:8080.

Tâche 4 : Déployer une application sur Cloud Run

  1. Pour déployer votre application conteneurisée sur Cloud Run, exécutez la commande suivante en spécifiant votre ID de projet :
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

L'option "allow-unauthenticated" de la commande ci-dessus rend votre service accessible publiquement.

  1. Lorsque vous y êtes invité, confirmez le nom du service en appuyant sur Entrée.
Remarque : L'invite Do you want enable these APIs to continue (this will take a few minutes)? (Y/N)? (Voulez-vous activer ces API pour continuer (cela prendra quelques minutes) ? Oui/Non ?) peut s'afficher. Si vous acceptez, saisissez Y pour activer l'API requise.

Patientez quelques instants jusqu'à la fin du déploiement.

En cas de réussite, la ligne de commande affiche l'URL du service :

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

Vous pouvez maintenant accéder au conteneur déployé en ouvrant l'URL du service dans une fenêtre de navigateur quelconque.

Félicitations ! Vous venez de déployer une application empaquetée dans une image de conteneur sur Cloud Run. Cloud Run effectue un scaling automatique et horizontal de votre image de conteneur pour traiter les requêtes reçues, puis un scaling à la baisse lorsque la demande diminue. Dans votre environnement, vous ne payez que pour le processeur, la mémoire et le réseau utilisés lors du traitement des requêtes.

Dans cet atelier, vous avez utilisé la ligne de commande gcloud. Cloud Run est également accessible depuis la console Cloud.

  • Dans la section "Sans serveur" du menu de navigation, cliquez sur Cloud Run. Votre service helloworld doit être listé :

Onglet Cloud Run affichant le service helloworld

Tâche 5 : Effectuer un nettoyage

Bien que le service Cloud Run ne soit pas facturé lorsqu'il n'est pas utilisé, il se peut que des frais vous incombent pour le stockage de l'image de conteneur générée.

  1. Afin d'éviter que des frais ne vous soient facturés, vous pouvez soit supprimer votre projet Google Cloud, ce qui arrêtera la facturation de toutes les ressources qui y ont été utilisées, soit supprimer votre image helloworld en exécutant la commande suivante :
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Lorsque vous êtes invité à poursuivre la procédure, saisissez Y et appuyez sur Entrée.

  2. Pour supprimer le service Cloud Run, utilisez cette commande :

gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
  1. Lorsque vous êtes invité à poursuivre la procédure, saisissez Y et appuyez sur Entrée.

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Félicitations !

Vous avez terminé cet atelier.

Étapes suivantes et informations supplémentaires

Pour savoir comment créer un conteneur HTTP sans état pour Cloud Run à partir de code source et le transférer dans Artifact Registry, consultez les pages suivantes :

Copyright 2020 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.

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