1. Introduction
Dernière mise à jour : 21 juin 2023
Alertes sur les tests de disponibilité pour la disponibilité
Les alertes sur les vérifications du temps d'activité vous permettent d'identifier et de résoudre rapidement les problèmes susceptibles d'affecter vos services. En étant alerté des pannes, vous pouvez prendre des mesures pour minimiser leur impact sur vos utilisateurs et vos clients.
Les vérifications du temps d'activité sont effectuées à intervalles réguliers, dont le plus court est de 60 secondes. Il peut également être utile de surveiller les codes d'erreur en tant qu'événements dynamiques à l'aide d'alertes basées sur les journaux. Cela peut vous fournir un indicateur supplémentaire d'indisponibilité si vous avez besoin d'une précision supérieure à 60 secondes. Si un intervalle de 60 secondes ou plus est acceptable, les vérifications du temps d'activité constituent un moyen simple de mesurer votre service avec peu de configuration supplémentaire.
Si un service n'est pas disponible, un test de disponibilité détecte le problème même en l'absence de trafic. Le trafic, en revanche, peut être affecté par des facteurs tels que la maintenance, les mises à niveau et même des facteurs externes au système, comme le mauvais temps ou les événements sportifs qui détournent l'utilisation.
Pour savoir quand utiliser les vérifications du temps d'activité, consultez Assurer le temps d'activité de vos ressources Google Cloud.
Sujets Pub/Sub comme canal de notification d'alerte
Un sujet Pub/Sub peut être utilisé comme canal de notification Google Cloud Monitoring pour envoyer des alertes à un abonnement Pub/Sub. Cela vous permet d'intégrer vos alertes Cloud Monitoring à d'autres systèmes, y compris des services de notification tiers.
Pour utiliser un sujet Pub/Sub comme canal de notification, vous devez d'abord créer un sujet et un abonnement Pub/Sub. Vous devez ensuite créer un canal de notification Cloud Monitoring qui utilise le sujet Pub/Sub comme destination.
Lorsqu'une alerte est déclenchée, Cloud Monitoring envoie un message au sujet Pub/Sub. L'abonné Pub/Sub peut ensuite traiter le message et prendre les mesures appropriées.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez déployer une application, créer un sujet Pub/Sub et créer une alerte de test de disponibilité pour l'application qui utilise le sujet Pub/Sub comme canal de notification.
Points abordés
- Créer un sujet Pub/Sub
- Créer un test de disponibilité et une alerte
Cet atelier de programmation porte sur la création d'une alerte pour un test de disponibilité. Les concepts et le code d'application non pertinents ne sont pas abordés, mais vous sont fournis afin que vous puissiez simplement les copier et les coller.
Prérequis
- Un compte Google Cloud disposant des autorisations suivantes :
- Déployer des applications Cloud Run
- Créer des sujets Pub/Sub
- Créer des tests de disponibilité
- Créer des alertes
2. Configuration
Sélectionner ou créer un projet Google Cloud
Pour sélectionner un projet existant, utilisez le menu déroulant :

Pour créer un projet dans Google Cloud, procédez comme suit :
- Accédez à la console Google Cloud Platform.
- Cliquez sur le bouton Créer un projet.
- Saisissez le nom de votre projet.
- Sélectionnez un compte de facturation pour votre projet.
- Cliquez sur le bouton Créer.
Votre projet sera créé et vous serez redirigé vers le tableau de bord du projet. Vous pourrez ensuite commencer à utiliser les services Google Cloud.
Voici quelques informations supplémentaires sur chaque étape :
- Nom : le nom de votre projet doit être unique au sein de votre organisation.
- Compte de facturation : vous pouvez utiliser un compte de facturation existant ou en créer un.
- Créer : une fois que vous avez saisi toutes les informations requises, cliquez sur le bouton Créer pour créer votre projet.
Pour en savoir plus, consultez la documentation Google Cloud sur la création de projets.
3. Déployer l'application d'API
Quel est l'objet de l'application ou de l'API exemple ?
Notre application est une application simple de l'API Inventory qui expose un point de terminaison d'API REST avec quelques opérations permettant de lister les articles de l'inventaire et d'obtenir le nombre d'articles spécifiques en stock.
Une fois l'API déployée et en supposant qu'elle soit hébergée sur https://<somehost>, nous pouvons accéder aux points de terminaison de l'API comme suit :
https://<somehost>/inventory
Tous les produits et leurs niveaux de stock disponibles seront listés.
https://<somehost>/inventory/{productid}
Vous obtiendrez ainsi un seul enregistrement avec l'ID du produit et le niveau de stock disponible pour ce produit.
Les données de réponse renvoyées sont au format JSON.
Remarque : Cette application API est uniquement destinée à des fins de démonstration et ne représente pas une implémentation d'API sécurisée et robuste. Il est destiné à nous fournir une application rapide pour explorer l'objectif principal de l'atelier, à savoir les opérations Google Cloud.
Exemple de données et de requête/réponse API
Pour plus de simplicité, l'application n'est pas alimentée par une base de données au niveau du backend. Il contient trois exemples d'ID de produits et leurs niveaux de stock disponibles.
Identifiant de produit | Niveau d'inventaire disponible |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Vous trouverez ci-dessous un exemple de requête et de réponse de l'API :
Requête API | Réponse de l'API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Cloner le dépôt
Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.
Depuis la console GCP, cliquez sur l'icône Cloud Shell de la barre d'outils située dans l'angle supérieur droit :

Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

Cette machine virtuelle contient tous les outils de développement dont vous avez besoin. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez réaliser toutes les activités de cet atelier dans un simple navigateur.
Configurer gcloud
Dans Cloud Shell, définissez l'ID de votre projet et enregistrez-le en tant que variable PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Exécutez maintenant la commande suivante :
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Un dossier intitulé "cloud-code-sample-repository" sera créé dans ce dossier.
(Facultatif) Exécuter l'application sur Cloud Shell
Pour exécuter l'application en local, procédez comme suit :
- Depuis le terminal, accédez à la version Python de l'API à l'aide de la commande suivante :
$ cd cloud-code-sample-repository
$ cd python-flask-api
- Dans le terminal, saisissez la commande suivante (au moment de la rédaction, Cloud Shell est fourni avec Python 3.9.x installé. Nous utiliserons la version par défaut. Si vous prévoyez de l'exécuter localement sur votre ordinateur portable, vous pouvez utiliser Python 3.8 ou une version ultérieure :
$ python app.py
- Vous pouvez exécuter la commande suivante pour démarrer le serveur Python en local.

Cliquez sur "Prévisualiser sur le port 8080". 5. Une fenêtre de navigateur s'ouvre. Une erreur 404 s'affiche, mais ce n'est pas grave. Modifiez l'URL pour qu'elle ne contienne que "/inventory" après le nom d'hôte.
Par exemple, sur mon ordinateur, cela ressemble à ceci :
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
La liste des articles d'inventaire s'affiche, comme expliqué précédemment :

- Vous pouvez arrêter le serveur maintenant en accédant au terminal et en appuyant sur Ctrl+C.
Déployer l'application
Nous allons maintenant déployer cette application d'API sur Cloud Run. Le processus impliquait l'utilisation du client de ligne de commande gcloud pour exécuter la commande permettant de déployer le code sur Cloud Run.
Dans le terminal, exécutez la commande gcloud suivante :
$ gcloud run deploy --source .
Plusieurs questions vous seront posées. Voici quelques-uns des points abordés :
- Nom du service (python-flask-api) : vous pouvez conserver ce nom par défaut ou en choisir un autre, par exemple my-inventory-api.
- API [run.googleapis.com] not enabled on project [613162942481]. Voulez-vous activer et réessayer (cela prendra quelques minutes) ? (y/N)? O
- Veuillez spécifier une région : choisissez 31 (us-west-1).
- API [artifactregistry.googleapis.com] not enabled on project [613162942481]. Voulez-vous activer et réessayer (cela prendra quelques minutes) ? (y/N)? O
- Le déploiement à partir de la source nécessite un dépôt Docker Artifact Registry pour stocker les conteneurs créés. Un dépôt nommé [cloud-run-source-deploy] sera créé dans la région [us-west1].
- Do you want to continue (Y/n)? O
- Autoriser les appels non authentifiés vers [my-inventory-api] (y/N) ? O
Cela lancera le processus de conteneurisation de votre code source, de transfert vers Artifact Registry, puis de déploiement du service et de la révision Cloud Run. Soyez patient pendant ce processus (qui peut prendre trois à quatre minutes). Une fois terminé, l'URL du service s'affiche.
Voici un exemple d'exécution :

Tester l'application
Maintenant que nous avons déployé l'application sur Cloud Run, vous pouvez accéder à l'application d'API comme suit :
- Notez l'URL du service de l'étape précédente. Par exemple, dans ma configuration, il s'affiche sous la forme
https://my-inventory-api-bt2r5243dq-uw.a.run.app. Appelons-le<SERVICE_URL>. - Ouvrez un navigateur et accédez aux trois URL suivantes pour les points de terminaison de l'API :
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
Il doit correspondre aux spécifications que nous avons fournies dans une section précédente avec un exemple de requête et de réponse d'API.
Obtenir les détails du service à partir de Cloud Run
Nous avons déployé notre service d'API sur Cloud Run, un environnement de calcul sans serveur. Nous pouvons accéder au service Cloud Run via la console Google Cloud à tout moment.
Dans le menu principal, accédez à Cloud Run. La liste des services que vous exécutez dans Cloud Run s'affiche. Vous devriez voir le service que vous venez de déployer. Selon le nom que vous avez sélectionné, l'écran qui s'affiche devrait ressembler à ce qui suit :

Cliquez sur le nom du service pour afficher les détails. Vous trouverez ci-dessous les détails de l'échantillon :

Notez l'URL, qui n'est autre que l'URL du service que vous pouvez saisir dans le navigateur pour accéder à l'API Inventory que nous venons de déployer. Consultez les métriques et d'autres informations.
Commençons par la suite Google Cloud Operations.
4. Créer un sujet Pub/Sub pour recevoir la notification d'alerte
Pour créer un sujet Pub/Sub, vous pouvez suivre ces étapes dans la console Google Cloud :
- Recherchez Pub/Sub dans le champ de recherche, puis accédez à Pub/Sub.

- Si ce n'est pas déjà fait, cliquez sur l'onglet Thèmes.

- Cliquez sur le bouton Créer un sujet.

- Saisissez un nom pour votre thème.

- Cliquez sur le bouton Créer.

- Copiez le nom du sujet à l'aide de l'icône de copie. Vous en aurez besoin pour la section suivante.

5. Créer un test de disponibilité
Pour créer un test de disponibilité pour une application Google Cloud Run :
- Accédez à la console Google Cloud Platform.
- Cliquez sur l'onglet Surveillance.
- Cliquez sur l'onglet Tests de disponibilité.
- En haut de la page, cliquez sur le bouton Créer un test de disponibilité.

- Utilisez les valeurs suivantes :
- Protocole : HTTPS
- Type de ressource : URL
- Nom d'hôte : saisissez la partie de l'URL du service Cloud Run sans le préfixe https. Vous trouverez un exemple sur l'écran ci-dessous. Si vous ne connaissez pas l'URL du service, accédez à Cloud Run depuis la console Google Cloud principale, puis accédez aux détails du service Cloud Run comme expliqué précédemment pour obtenir l'URL du service.
- Chemin d'accès : healthy
- Fréquence de vérification : 1 minute

- Cliquez sur Continuer.
- Activez l'option La correspondance de contenu est activée.
- Saisissez "All Izz Well" sous Contenu de la réponse. Cette chaîne se trouve déjà dans l'application lorsqu'elle envoie des réponses complètes.
- Keep

- Laissez le paramètre Codes de réponse HTTP acceptés défini sur Classes de codes de réponse et 2xx comme seule classe de codes de réponse. De cette façon, seuls les codes de réponse 2xx seront évalués pour la chaîne, et tout autre code sera automatiquement considéré comme un échec.

- Cliquez sur Continuer.
- Sélectionnez le sujet Cloud Pub/Sub comme canal de notification, puis cliquez sur OK.

- Cliquez sur Continuer.
- Ajouter un titre reconnaissable

- Cliquez sur le bouton Tester.

- Vérifiez, puis cliquez sur le bouton Créer lorsque vous êtes prêt.

Votre test de disponibilité est créé et commence à surveiller votre application Cloud Run. Vous pouvez consulter l'état de votre test de disponibilité dans l'onglet Tests de disponibilité.

6. Félicitations
Félicitations, vous avez correctement configuré votre test de disponibilité pour envoyer des alertes à Pub/Sub.