GSP649

Présentation
Dans cet atelier, vous allez identifier et éliminer les ressources cloud inutilisées à l'aide de Cloud Run Functions et de Cloud Scheduler. Vous allez déclencher une fonction Cloud Run pour migrer un bucket de stockage vers une classe de stockage plus économique à l'aide d'une règle d'alerte Cloud Monitoring.
Google Cloud fournit des règles de cycle de vie qui déplacent automatiquement les objets vers d'autres classes de stockage en fonction de leurs attributs (par exemple, leur date de création ou leur état actuel). Cependant, ces règles ne prennent pas en compte la fréquence d'accès aux objets. Vous pourriez, par exemple, souhaiter déplacer des objets récents vers un stockage Nearline s'ils n'ont pas été consultés depuis un certain temps.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Créer deux buckets de stockage, ajouter un fichier au bucket actif
serving-bucket
et générer du trafic sur celui-ci
- Créer un tableau de bord Cloud Monitoring pour visualiser l'utilisation du bucket
- Déployer une fonction Cloud Run pour migrer le bucket inactif vers une classe de stockage plus économique, puis déclencher la fonction à l'aide d'une charge utile dont le rôle est d'imiter une notification envoyée par une règle d'alerte Cloud
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
-
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
-
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.
-
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".
-
Cliquez sur Suivant.
-
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".
-
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.
-
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.
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.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (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.
Architecture
Dans le schéma suivant, vous déclenchez une fonction Cloud Run pour migrer un bucket de stockage vers une classe de stockage plus économique à l'aide d'une règle d'alerte Cloud Monitoring.

Tâche 1 : Activer les API et télécharger le code source
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Dans Cloud Shell, activez l'API Cloud Scheduler :
gcloud services enable cloudscheduler.googleapis.com
Cliquez sur Vérifier ma progression pour valider l'objectif.
Activer l'API Cloud Scheduler
- Téléchargez le code source de l'atelier :
gcloud storage cp -r gs://spls/gsp649/* . && cd gcf-automated-resource-cleanup/
- Définissez des variables d'environnement et utilisez le dossier de dépôt comme répertoire de travail $WORKDIR. C'est d'ici que vous exécuterez toutes les commandes de cet atelier :
export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null)
WORKDIR=$(pwd)
- Installez Apache Bench, un outil de génération de charge Open Source :
sudo apt-get update
sudo apt-get install apache2-utils -y
Tâche 2 : Créer des buckets Cloud Storage et ajouter un fichier
- Dans Cloud Shell, accédez au répertoire
migrate-storage
:
cd $WORKDIR/migrate-storage
- Créez
serving-bucket
, le bucket Cloud Storage. Vous l'utiliserez plus tard pour changer de classe de stockage :
export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null)
gcloud storage buckets create gs://${PROJECT_ID}-serving-bucket -l {{{project_0.default_region|REGION}}}
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un bucket Cloud Storage
- Rendez le bucket public :
gsutil acl ch -u allUsers:R gs://${PROJECT_ID}-serving-bucket
- Ajoutez un fichier texte au bucket :
gcloud storage cp $WORKDIR/migrate-storage/testfile.txt gs://${PROJECT_ID}-serving-bucket
- Rendez le fichier public :
gsutil acl ch -u allUsers:R gs://${PROJECT_ID}-serving-bucket/testfile.txt
- Vérifiez que le fichier est accessible :
curl http://storage.googleapis.com/${PROJECT_ID}-serving-bucket/testfile.txt
Vous obtenez le résultat suivant :
this is a test
Cliquez sur Vérifier ma progression pour valider l'objectif.
Rendre le bucket Cloud Storage public
- Créez un bucket inactif nommé idle-bucket, qui ne transmettra aucune donnée :
gcloud storage buckets create gs://${PROJECT_ID}-idle-bucket -l {{{project_0.default_region|REGION}}}
export IDLE_BUCKET_NAME=$PROJECT_ID-idle-bucket
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un autre bucket Cloud Storage
Tâche 3 : Créer un tableau de bord de surveillance
Créer un champ d'application des métriques Monitoring
Définissez un champ d'application des métriques Monitoring associé à votre projet Google Cloud. Suivez les étapes ci-dessous pour créer un compte incluant un essai gratuit de Monitoring.
- Dans la console Cloud, cliquez sur le menu de navigation (
), puis sur Afficher tous les produits > Observabilité > Monitoring.
Lorsque la page Aperçu de Monitoring s'affiche, votre projet de champ d'application des métriques est prêt.
-
Dans le panneau de gauche, cliquez sur Tableaux de bord > Créer un tableau de bord personnalisé.
-
Nommez le tableau de bord Bucket Usage
(Utilisation du bucket).
-
Cliquez sur + AJOUTER UN WIDGET.
-
Cliquez sur Ligne.
-
Dans Titre du widget, saisissez Bucket Access
(Accès au bucket).
-
Cliquez sur Sélectionner une métrique > Bucket GCS > API > Nombre de requêtes, puis sur Appliquer.
Remarque : Si vous ne parvenez pas à trouver la métrique Nombre de requêtes, décochez Actives.

-
Pour regrouper les métriques par nom de bucket, accédez à la liste déroulante Grouper par, sélectionnez bucket_name et cliquez sur OK.
-
Cliquez sur + Ajouter un filtre.
Pour filtrer par nom de méthode :
- Pour Filtrer par étiquette de métrique, sélectionnez Méthode.
- Dans le menu déroulant à côté de Méthode, sélectionnez ReadObject.
- Cliquez sur Appliquer.
Vous avez configuré Cloud Monitoring de manière à surveiller l'accès aux objets dans vos buckets. Le graphique n'affiche aucune donnée, car le trafic vers les buckets Cloud Storage est inexistant.
Tâche 4 : Générer une charge sur le bucket actif
Maintenant que vous avez configuré la surveillance, utilisez Apache Bench pour envoyer du trafic vers le bucket actif serving-bucket
.
- Dans Cloud Shell, envoyez des requêtes vers l'objet du bucket actif :
ab -n 10000 http://storage.googleapis.com/$PROJECT_ID-serving-bucket/testfile.txt
- Dans le panneau de gauche, cliquez sur Tableaux de bord, puis sur le nom de votre tableau de bord (Bucket Usage) pour afficher le graphique "Bucket Access".
Remarque : Si vous avez fermé l'onglet, accédez au menu de navigation > Afficher tous les produits > Observabilité > Monitoring. Ensuite, dans le panneau de gauche, cliquez sur Tableaux de bord > Bucket Usage.
Remarque : Vous devrez patienter au moins une minute avant que le graphique n'apparaisse dans le tableau de bord Bucket Usage.
- Afficher les détails du trafic

Vous devrez peut-être appuyer sur Ctrl+C pour revenir à l'invite de commande.
Tâche 5 : Examiner et déployer la fonction Cloud Run
- Dans Cloud Shell, saisissez la commande suivante pour afficher le code de la fonction Cloud Run qui permet de migrer un bucket de stockage vers la classe de stockage Nearline :
cat $WORKDIR/migrate-storage/main.py | grep "migrate_storage(" -A 15
Voici le résultat :
def migrate_storage(request):
request_json = request.get_json(force=True)
bucket_name = request_json['incident']['resource_name']
print(f"bucket_name: {bucket_name}") # Print the bucket name
if not bucket_name:
print("Error: bucket_name is empty")
return "Invalid bucket name", 400
storage_client = storage.Client(project)
bucket = storage_client.get_bucket(bucket_name)
bucket.storage_class = "NEARLINE"
bucket.patch()
return "Bucket migrated successfully", 200
Vous remarquerez que la fonction Cloud Run utilise le nom du bucket transmis dans la requête pour passer celui-ci à la classe de stockage Nearline.
- Modifiez le script Python pour utiliser l'ID de votre projet :
sed -i "s/<project-id>/$PROJECT_ID/" $WORKDIR/migrate-storage/main.py
- Désactivez l'API Cloud Run Functions :
gcloud services disable cloudfunctions.googleapis.com
- Réactivez ensuite l'API :
gcloud services enable cloudfunctions.googleapis.com
- Exportez le numéro du projet :
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
- Ajoutez l'autorisation
artifactregistry.reader
pour votre compte de service développeur :
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/artifactregistry.reader"
- Déployez la fonction Cloud Run :
gcloud functions deploy migrate_storage --gen2 --trigger-http --runtime=python39 --region {{{project_0.default_region | Region}}}
Lorsque vous y êtes invité, saisissez Y
afin d'activer l'API [run.googleapis.com] pour le projet, puis réessayez. Faites de même pour autoriser les appels non authentifiés.
Remarque : En cas d'erreur d'autorisation, veuillez attendre quelques minutes, puis réessayez d'effectuer le déploiement.
- Enregistrez l'URL du déclencheur dans une variable d'environnement que vous utiliserez à la prochaine section :
export FUNCTION_URL=$(gcloud functions describe migrate_storage --format=json --region {{{project_0.default_region | Region}}} | jq -r '.url')
Cliquez sur Vérifier ma progression pour valider l'objectif.
Déployer la fonction Cloud Run
Tâche 6 : Tester et valider l'automatisation des alertes
- Modifiez le fichier JSON avec le nom du bucket :
export IDLE_BUCKET_NAME=$PROJECT_ID-idle-bucket
sed -i "s/\\\$IDLE_BUCKET_NAME/$IDLE_BUCKET_NAME/" $WORKDIR/migrate-storage/incident.json
- Envoyez une notification de test vers la fonction Cloud Run que vous avez déployée à l'aide du fichier
incident.json
:
envsubst < $WORKDIR/migrate-storage/incident.json | curl -X POST -H "Content-Type: application/json" $FUNCTION_URL -d @-
Voici le résultat :
Bucket migrated successfully
Le résultat ne se termine pas par un retour à la ligne, il est donc immédiatement suivi par l'invite de commande.
- Vérifiez que le bucket inactif a bien été migré vers la classe Nearline :
gsutil defstorageclass get gs://$PROJECT_ID-idle-bucket
Voici le résultat :
gs://<project-id>-idle-bucket: NEARLINE
Cliquez sur Vérifier ma progression pour valider l'objectif.
Vérifier que le bucket a bien été migré vers Nearline
Félicitations !
Félicitations ! Dans cet atelier, vous avez créé deux buckets Cloud Storage, ajouté un objet à l'un d'eux, configuré Cloud Monitoring pour suivre l'accès aux buckets, examiné et déployé une fonction Cloud Run destinée à migrer les objets vers un bucket Nearline, et testé cette fonction à l'aide d'une alerte Cloud Monitoring.
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 : 4 mars 2025
Dernier test de l'atelier : 4 mars 2025
Copyright 2025 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.