ARC102
Présentation
Dans un atelier challenge, vous devez suivre un scénario et effectuer une série de tâches. Aucune instruction détaillée n'est fournie : vous devez utiliser les compétences acquises au cours des ateliers du cours correspondant pour déterminer comment procéder par vous-même. Vous saurez si vous avez exécuté correctement les différentes tâches grâce au score calculé automatiquement (affiché sur cette page).
Lorsque vous participez à un atelier challenge, vous n'étudiez pas de nouveaux concepts Google Cloud. Vous allez approfondir les compétences précédemment acquises. Par exemple, vous devrez modifier les valeurs par défaut ou encore examiner des messages d'erreur pour corriger vous-même les problèmes.
Pour atteindre le score de 100 %, vous devez mener à bien l'ensemble des tâches dans le délai imparti.
Prérequis
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.
Scénario du challenge
Vous venez d'être embauché en tant qu'ingénieur cloud junior. Jusqu'à présent, vous avez aidé des équipes à créer et gérer des ressources Google Cloud.
Vous êtes censé disposer des compétences et des connaissances requises pour ces tâches.
Votre challenge
Il vous est demandé d'aider une équipe de développement récemment constituée à démarrer un nouveau projet de stockage et d'organisation de photographies pour des organisations de protection de la faune appelées Wild. Vous devez aider l'équipe de Wild à configurer son environnement de développement d'application. Les tâches que vous aurez à effectuer sont les suivantes :
- Utiliser des commandes pour créer un bucket permettant de stocker les photographies
- Utiliser des commandes pour créer un sujet Pub/Sub qui sera utilisé par une fonction Cloud que vous allez créer
- Utiliser des commandes pour créer une fonction Cloud
Voici quelques normes que vous devez respecter :
- Sauf instruction contraire, créez toutes les ressources dans la zone .
- Utilisez les VPC du projet.
- Les noms suivent normalement le schéma équipe-ressource : par exemple, une instance peut être nommée kraken-webserver1.
- Allouez des tailles de ressources économiques. Les projets sont surveillés, et une utilisation excessive des ressources entraînera l'arrêt des projets (du vôtre, éventuellement). Soyez donc vigilant. Voici les indications fournies par l'équipe de surveillance : sauf instruction contraire, utilisez e2-micro pour les petites VM Linux, et e2-medium pour Windows ou d'autres applications, comme des nœuds Kubernetes.
Chaque tâche est décrite en détail ci-dessous. Bonne chance !
Tâche 1 : Créer un bucket
- Utilisez des commandes (CLI/SDK) pour créer un bucket appelé afin de stocker les photographies.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un bucket appelé
Tâche 2 : Créer un sujet Pub/Sub
- Utilisez la ligne de commande pour créer un sujet Pub/Sub appelé afin que la fonction Cloud envoie des messages.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un sujet Pub/Sub appelé
Tâche 3 : Créer la fonction Cloud "thumbnail" (vignette)
-
Utilisez la ligne de commande pour créer une fonction Cloud appelée qui s'exécute chaque fois qu'un objet est créé dans le bucket que vous avez créé à la tâche 1.
-
Assurez-vous d'avoir défini le point d'entrée (la fonction à exécuter) sur thumbnail (vignette) et le déclencheur sur Cloud Storage.
-
À la ligne 15 d'index.js remplacez le texte REPLACE_WITH_YOUR_TOPIC ID par le sujet que vous avez créé à la tâche 2.
index.js :
/* globals exports, require */
//jshint strict: false
//jshint esversion: 6
"use strict";
const crc32 = require("fast-crc32c");
const { Storage } = require('@google-cloud/storage');
const gcs = new Storage();
const { PubSub } = require('@google-cloud/pubsub');
const imagemagick = require("imagemagick-stream");
exports.thumbnail = (event, context) => {
const fileName = event.name;
const bucketName = event.bucket;
const size = "64x64"
const bucket = gcs.bucket(bucketName);
const topicName = "REPLACE_WITH_YOUR_TOPIC ID";
const pubsub = new PubSub();
if ( fileName.search("64x64_thumbnail") == -1 ){
// doesn't have a thumbnail, get the filename extension
var filename_split = fileName.split('.');
var filename_ext = filename_split[filename_split.length - 1];
var filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length );
if (filename_ext.toLowerCase() == 'png' || filename_ext.toLowerCase() == 'jpg'){
// only support png and jpg at this point
console.log(`Processing Original: gs://${bucketName}/${fileName}`);
const gcsObject = bucket.file(fileName);
let newFilename = filename_without_ext + size + '_thumbnail.' + filename_ext;
let gcsNewObject = bucket.file(newFilename);
let srcStream = gcsObject.createReadStream();
let dstStream = gcsNewObject.createWriteStream();
let resize = imagemagick().resize(size).quality(90);
srcStream.pipe(resize).pipe(dstStream);
return new Promise((resolve, reject) => {
dstStream
.on("error", (err) => {
console.log(`Error: ${err}`);
reject(err);
})
.on("finish", () => {
console.log(`Success: ${fileName} → ${newFilename}`);
// set the content-type
gcsNewObject.setMetadata(
{
contentType: 'image/'+ filename_ext.toLowerCase()
}, function(err, apiResponse) {});
pubsub
.topic(topicName)
.publisher()
.publish(Buffer.from(newFilename))
.then(messageId => {
console.log(`Message ${messageId} published.`);
})
.catch(err => {
console.error('ERROR:', err);
});
});
});
}
else {
console.log(`gs://${bucketName}/${fileName} is not an image I can handle`);
}
}
else {
console.log(`gs://${bucketName}/${fileName} already has a thumbnail`);
}
};
package.json :
{
"name": "thumbnails",
"version": "1.0.0",
"description": "Create Thumbnail of uploaded image",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"@google-cloud/pubsub": "^2.0.0",
"@google-cloud/storage": "^5.0.0",
"fast-crc32c": "1.0.4",
"imagemagick-stream": "4.1.1"
},
"devDependencies": {},
"engines": {
"node": ">=4.3.2"
}
}
Remarque : Vous devez importer une image au format JPG ou PNG dans le bucket pour vérifier que la vignette a été créée (après avoir créé la fonction). Utilisez cette image https://storage.googleapis.com/cloud-training/arc102/wildlife.jpg : téléchargez-la sur votre machine, puis importez ce fichier dans votre bucket. Peu après, une image de vignette s'affiche (utilisez ACTUALISER dans les informations sur le bucket).
Cliquez sur Vérifier ma progression pour valider l'objectif.
Vérifier que la fonction Cloud s'est exécutée
Félicitations !

Gagnez un badge de compétence
Cet atelier d'auto-formation contribue à l'obtention du badge de compétence Stocker, traiter et gérer des données sur Google Cloud – Ligne de commande. Si vous terminez ce cours, vous obtiendrez le badge de compétence ci-dessus attestant de votre réussite. Ajoutez votre badge à votre CV et partagez-le sur les réseaux sociaux en utilisant le hashtag #GoogleCloudBadge.
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 : 3 juin 2024
Dernier test de l'atelier : 3 juin 2024
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.