Il y a 12 ans, Lily a créé une chaîne de cliniques vétérinaires appelée Pet Theory.
Actuellement, Pet Theory envoie des factures au format DOCX à ses clients, mais de nombreux clients se sont plaints de ne pas pouvoir les ouvrir.
Afin d'améliorer la satisfaction client, Lily a demandé à Patrick, du service informatique, d'étudier une alternative pour améliorer la situation actuelle.
L'équipe de développement de Pet Theory étant composée d'une seule personne, elle est désireuse d'investir dans une solution rentable qui ne nécessite pas beaucoup de maintenance. Après avoir analysé les différentes options de traitement, Patrick décide d'utiliser Cloud Run.
Cloud Run est sans serveur, ce qui permet d'éliminer toute la gestion de l'infrastructure et de se concentrer sur la création de l'application sans se soucier des coûts. En tant que produit Google sans serveur, il peut faire l'objet d'un scaling à zéro instance, ce qui signifie qu'il n'entraîne aucuns frais lorsqu'il n'est pas utilisé. Il vous permet également d'utiliser des packages binaires personnalisés basés sur des conteneurs, ce qui signifie qu'il est désormais possible de créer des artefacts isolés et cohérents.
Dans cet atelier, vous allez créer une application Web de conversion en PDF sur Cloud Run, qui convertit automatiquement les fichiers stockés dans Cloud Storage en PDF stockés dans des dossiers séparés.
Architecture
Ce schéma présente les services que vous allez utiliser et la manière dont ils se connectent les uns aux autres :
Objectifs
Dans cet atelier, vous allez apprendre à :
Convertir une application Node.js vers un conteneur
Créer des conteneurs avec Google Cloud Build
Créer un service Cloud Run qui convertit des fichiers en PDF dans le cloud
Utiliser le traitement des événements avec Cloud Storage
Prérequis
Il s'agit d'un atelier de niveau intermédiaire recommandé aux personnes qui maîtrisent déjà la console et les environnements de shell. Connaître Firebase est utile, mais n'est pas obligatoire. Avant de commencer cet atelier, il est recommandé d'avoir suivi les ateliers Google Cloud Skills Boost suivants :
Lorsque vous êtes prêt, faites défiler la page vers le bas et suivez les indications pour passer à la configuration de l'environnement de votre atelier.
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.
Tâche 1 : Comprendre la tâche
Pet Theory voudrait convertir ses factures en PDF pour avoir l'assurance que les clients puissent les ouvrir. L'équipe veut réaliser cette conversion automatiquement pour minimiser la charge de travail de Lisa, la responsable des services administratifs.
Ruby, la consultante en informatique de Pet Theory, reçoit un message de Patrick, du service informatique...
Patrick, Administrateur informatique
Bonjour Ruby,
J'ai fait quelques recherches et j'ai trouvé que LibreOffice est efficace pour convertir de nombreux formats de fichiers différents en PDF.
Serait-il possible de faire fonctionner LibreOffice dans le cloud sans avoir à entretenir les serveurs ?
Patrick
Ruby, Consultante en logiciels
Bonjour Patrick,
Je pense que j'ai ce qu'il faut pour ce genre de situation.
Je viens de regarder sur YouTube une vidéo très intéressante de Next 2019 sur Cloud Run. Il semble que nous puissions faire fonctionner LibreOffice dans un environnement sans serveur avec Cloud Run. Aucune maintenance du serveur n'est nécessaire !
Je vais vous envoyer des ressources qui vous aideront à le mettre en place.
Ruby
Aidez Patrick à mettre en place et à déployer Cloud Run.
Tâche 2 : Activer l'API Cloud Run
Ouvrez le menu de navigation (), puis cliquez sur API et services > Bibliothèque. Dans la barre de recherche, saisissez "Cloud Run" et sélectionnez l'API Cloud Run Admin dans la liste des résultats.
Cliquez sur Activer, puis appuyez deux fois sur le bouton "Retour" de votre navigateur. La page doit se présenter comme suit :
Tâche 3 : Déployer un service Cloud Run simple
Ruby a développé un prototype de Cloud Run et aimerait que Patrick le déploie sur Google Cloud. Aidez maintenant Patrick à mettre en place le service PDF Cloud Run pour Pet Theory.
Ouvrez une nouvelle session Cloud Shell et exécutez la commande suivante pour cloner le dépôt de Pet Theory :
Changez ensuite votre répertoire de travail actuel en lab03 :
cd pet-theory/lab03
Modifiez package.json avec l'éditeur de code Cloud Shell ou votre éditeur de texte préféré. Dans la section "scripts", ajoutez "start": "node index.js",, comme indiqué ci-dessous :
...
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
...
Exécutez maintenant les commandes suivantes dans Cloud Shell pour installer les packages que votre script de conversion utilisera :
Ouvrez maintenant le fichier lab03/index.js et vérifiez le code.
L'application sera déployée comme un service Cloud Run qui accepte les POST HTTP.
Si la requête POST est une notification Pub/Sub concernant un fichier importé, le service écrit les détails du fichier dans le journal. Sinon, le service renvoie simplement la chaîne "OK".
Examinez le fichier nommé lab03/Dockerfile.
Le fichier ci-dessus est ce qu'on appelle un fichier manifeste. Il fournit à la commande Docker une recette permettant de construire une image. Chaque ligne commence par une commande qui indique à Docker comment traiter les informations suivantes :
La première ligne indique que l'image de base doit utiliser le nœud comme modèle pour l'image à créer.
La dernière ligne indique la commande à exécuter, qui dans ce cas fait référence à "npm start".
Pour construire et déployer l'API REST, utilisez Google Cloud Build. Exécutez cette commande pour lancer le processus de compilation :
Une fois le déploiement terminé, un message de ce type s'affiche :
Service [pdf-converter] revision [pdf-converter-00001] has been deployed and is serving 100 percent of traffic at https://pdf-converter-[hash].a.run.app
Créez la variable d'environnement $SERVICE_URL pour l'application afin de pouvoir y accéder facilement :
SERVICE_URL=$(gcloud beta run services describe pdf-converter --platform managed --region {{{ project_0.default_region | Lab Region }}} --format="value(status.url)")
echo $SERVICE_URL
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour vérifier que vous avez correctement effectué la tâche ci-dessus.
Créer une révision pour Cloud Run
Effectuez une requête POST anonyme à votre nouveau service :
curl -X POST $SERVICE_URL
Remarque :
Cela entraînera un message d'erreur indiquant "Your client does not have permission to get the URL" ("Votre client n'a pas la permission d'obtenir l'URL"). En effet, vous ne voulez pas que le service puisse être appelé par des utilisateurs anonymes.
Essayez maintenant d'appeler le service en tant qu'utilisateur autorisé :
curl -X POST -H "Authorization: Bearer $(gcloud auth print-identity-token)" $SERVICE_URL
Si vous obtenez la réponse "OK", vous avez correctement déployé un service Cloud Run. Félicitations !
Tâche 4 : Déclencher votre service Cloud Run lorsqu'un nouveau fichier est importé
Maintenant que le service Cloud Run a été correctement déployé, Ruby aimerait que Patrick crée une zone de préproduction pour les données à convertir. Le bucket Cloud Storage va utiliser un déclencheur d'événement pour notifier l'application lorsqu'un fichier a été importé et doit être traité.
Exécutez la commande suivante afin de créer un bucket dans Cloud Storage pour les documents importés :
gsutil mb gs://$GOOGLE_CLOUD_PROJECT-upload
Et un autre bucket pour les PDF traités :
gsutil mb gs://$GOOGLE_CLOUD_PROJECT-processed
Revenez maintenant à l'onglet de la console Cloud, ouvrez le menu de navigation et sélectionnez Cloud Storage. Vérifiez que les buckets ont été créés (il y aura également d'autres buckets utilisés par la plate-forme).
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour vérifier que vous avez correctement effectué la tâche ci-dessus.
Créer deux buckets Cloud Storage
Dans Cloud Shell, exécutez la commande suivante pour indiquer à Cloud Storage d'envoyer une notification Pub/Sub chaque fois qu'un nouveau fichier a fini d'être importé dans le bucket docs :
Cliquez sur Vérifier ma progression pour vérifier que vous avez correctement effectué la tâche ci-dessus.
Créer un abonnement Pub/Sub
Tâche 5 : Vérifier si le service Cloud Run est déclenché lorsque les fichiers sont importés dans Cloud Storage
Pour vérifier que l'application fonctionne comme prévu, Ruby demande à Patrick d'importer quelques données de test dans le bucket de stockage nommé, puis d'accéder à Cloud Logging.
Copiez quelques fichiers de test dans votre bucket d'importation :
Une fois l'importation terminée, revenez à l'onglet de la console Cloud, ouvrez le menu de navigation et sélectionnez Logging dans la section "Opérations".
Dans le menu déroulant Ressource, appliquez le filtre Révision dans Cloud Run, puis cliquez sur Appliquer. Cliquez ensuite sur Exécuter la requête.
Dans les résultats de la requête, recherchez une entrée de journal qui commence par file:, puis cliquez dessus. Elle affiche un vidage des données du fichier que Pub/Sub envoie à votre service Cloud Run lorsqu'un nouveau fichier est importé.
Pouvez-vous trouver le nom du fichier que vous avez importé dans cet objet ?
Remarque :
Si vous ne voyez aucune entrée de journal qui commence par "file", essayez de cliquer sur le bouton permettant de "charger des journaux plus récents" vers le bas de la page.
Retournez ensuite à l'onglet de l'éditeur de code et exécutez la commande suivante dans Cloud Shell pour nettoyer votre répertoire upload en supprimant les fichiers qu'il contient :
gsutil -m rm gs://$GOOGLE_CLOUD_PROJECT-upload/*
Tâche 6 : Conteneurs
Patrick doit convertir des factures en attente en PDF pour que tous les clients puissent les ouvrir. Il envoie un e-mail à Ruby pour obtenir de l'aide...
Patrick, Administrateur informatique
Bonjour Ruby
Sur la base de vos conclusions, je pense que nous pouvons automatiser ce processus et passer à l'utilisation du format PDF comme format de facture.
J'ai passé un peu de temps hier à coder une solution et j'ai construit un script Node.js pour faire ce dont nous avons besoin. Pourriez-vous y jeter un coup d'œil ?
Patrick
Patrick envoie à Ruby le fragment de code qu'il a écrit pour produire un PDF à partir d'un fichier :
Cloud Run utilise des conteneurs, nous devons donc fournir votre application dans ce format. Pour l'étape suivante, nous devons créer un manifeste Dockerfile pour l'application.
Votre code utilise LibreOffice. Pourriez-vous m'envoyer la commande d'installation de ce logiciel ? Je vais devoir l'inclure dans le conteneur.
Ruby
Patrick, Administrateur informatique
Bonjour Ruby
Génial, voici comment j'installe habituellement LibreOffice sur les serveurs du bureau :
N'hésitez pas à me contacter si vous avez d'autres questions.
Patrick
La construction du conteneur nécessitera l'intégration d'un certain nombre de composants :
Mettre à jour le fichier manifeste
Une fois tous les fichiers identifiés, le fichier manifeste peut maintenant être créé. Aidez Ruby à mettre en place et à déployer le conteneur.
Le package pour LibreOffice n'était pas inclus dans le conteneur auparavant, ce qui signifie qu'il doit maintenant être ajouté.
Patrick a déjà fourni les commandes qu'il utilise pour construire son application, Ruby les ajoutera en tant que commande RUN dans le Dockerfile.
Ouvrez le manifeste Dockerfile et ajoutez la ligne de commande RUN apt-get update -y && apt-get install -y libreoffice && apt-get clean comme indiqué ci-dessous :
Chaque fois qu'un fichier a été importé, ce service est déclenché. Il effectue ces tâches, une par ligne de la fonction ci-dessus :
Il extrait les détails du fichier de la notification Pub/Sub.
Il télécharge le fichier du Cloud Storage sur le disque dur local. Il ne s'agit pas d'un disque physique, mais d'une section de mémoire virtuelle qui se comporte comme un disque.
Il convertit le fichier téléchargé en PDF.
Il importe le fichier PDF sur Cloud Storage. La variable d'environnement process.env.PDF_BUCKET contient le nom du bucket Cloud Storage dans lequel enregistrer des PDF. Vous attribuerez une valeur à cette variable lorsque vous déploierez le service ci-dessous.
Il supprime le fichier original de Cloud Storage.
Le reste du fichier index.js implémente les fonctions appelées par ce code de haut niveau.
Il est temps de déployer le service, et de définir la variable d'environnement PDF_BUCKET. Il est aussi conseillé d'octroyer à LibreOffice 2 Go de RAM pour travailler (consultez la ligne avec l'option --memory).
Exécutez la commande suivante pour créer le conteneur :
Avec la partie LibreOffice du conteneur, cette compilation prendra plus de temps que la précédente. C'est le bon moment pour marquer une pause.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer une révision
Tâche 7 : Tester le service de convertisseur PDF
Une fois les commandes de déploiement terminées, assurez-vous que le service a été déployé correctement en exécutant :
curl -X POST -H "Authorization: Bearer $(gcloud auth print-identity-token)" $SERVICE_URL
Si vous obtenez la réponse "OK", vous avez réussi à déployer le service Cloud Run mis à jour. LibreOffice peut convertir de nombreux types de fichiers en PDF : DOCX, XLSX, JPG, PNG, GIF, etc.
Exécutez la commande suivante pour importer quelques fichiers d'exemple :
Revenez à la console Cloud, ouvrez le menu de navigation, puis cliquez sur Cloud Storage. Ouvrez le bucket -upload et cliquez sur le bouton Actualiser plusieurs fois pour voir comment les fichiers sont supprimés, un par un, au fur et à mesure qu'ils sont convertis en PDF.
Cliquez ensuite sur Buckets dans le menu de gauche, et sur le bucket dont le nom se termine par "-processed". Il doit contenir les versions PDF de tous les fichiers. N'hésitez pas à ouvrir les fichiers PDF pour vous assurer qu'ils ont été correctement convertis :
Remarque : Si vous ne voyez pas tous les fichiers PDF convertis dans le bucket -processed, réexécutez la commande.
Félicitations !
Pet Theory dispose désormais d'un système pour convertir ses archives d'anciens fichiers en PDF.
En important simplement les anciens fichiers dans le bucket "upload", le service de convertisseur PDF les convertit et les enregistre en PDF dans le bucket "processed".
Poursuivez votre apprentissage en suivant le cours Serverless Cloud Run Development.
Vous découvrirez un scénario métier fondé sur une entreprise fictive et aiderez les protagonistes à migrer vers une technologie sans serveur.
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 mai 2024
Dernier test de l'atelier : 28 mai 2024
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.
Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
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.
En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.
Utilisez la navigation privée
Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
Cliquez sur Ouvrir la console en navigation privée
Connectez-vous à la console
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.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
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
Ouvrez une fenêtre de navigateur en mode 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.
Dans cet atelier, vous allez créer une application Web de convertisseur PDF sur Cloud Run, un service sans serveur, qui convertit automatiquement les fichiers stockés dans Cloud Storage en PDF stockés dans des dossiers séparés.
Durée :
1 min de configuration
·
Accessible pendant 60 min
·
Terminé après 60 min