Créer un vérificateur de liens non fonctionnels

Ce document explique comment configurer un test périodique des liens contenus dans un URI en créant une surveillance synthétique. Spécifiez les options du test, telles que l'URI d'origine, le nombre de liens testés et le nombre de tentatives, puis déployez une fonction Cloud préconfigurée. Pour faciliter vos efforts de dépannage et de débogage, la surveillance synthétique enregistre des informations détaillées sur chaque test, y compris des captures d'écran. Les captures d'écran vous permettent de voir la réponse exacte vue par les clients de votre application.

Pour en savoir plus sur la surveillance synthétique, consultez la page À propos de la surveillance synthétique.

À propos des vérificateurs de liens non fonctionnels

Chaque vérificateur de liens rompus teste les liens en série et dispose d'un délai avant expiration synthétique global configurable.

Par défaut, un vérificateur de liens non fonctionnels effectue les opérations suivantes:

  • Recherche dans l'URI d'origine des éléments d'ancrage HTML avec des attributs href.
  • Teste les 10 premiers liens trouvés dans l'URI d'origine.
  • Pour chaque lien, le vérificateur émet une requête, puis attend une réponse au maximum 30 secondes. Lorsqu'une réponse est reçue, le vérificateur vérifie que l'état de la réponse HTTP est 200, ce qui indique une réponse réussie. Le vérificateur n'effectue pas de nouvelles tentatives.

Vous spécifiez l'URI d'origine. Vous pouvez configurer les éléments HTML recherchés par l'outil de vérification des liens non fonctionnels, le nombre maximal d'éléments testés, le délai avant expiration par test et si de nouvelles tentatives sont effectuées. Vous pouvez également configurer des vérificateurs de liens non fonctionnels pour qu'ils attendent qu'un sélecteur s'affiche.

Les vérificateurs de liens non fonctionnels utilisent le modèle broken-links-ok. La configuration d'un vérificateur de liens non fonctionnels est spécifiée par l'objet options du fichier index.js. Si vous créez votre vérificateur à l'aide de la console Google Cloud, vous êtes invité à renseigner chaque option de configuration et la fonction Cloud est mise à jour automatiquement. Toutefois, si vous utilisez l'API Cloud Monitoring ou Terraform, vous devez renseigner cet objet.

Après avoir créé un vérificateur de liens non fonctionnels, mettez à jour l'objet options et redéployez la fonction Cloud pour modifier la configuration.

Avant de commencer

  1. Pour obtenir les autorisations nécessaires pour afficher et modifier la surveillance synthétique à l'aide de la console Google Cloud, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur votre projet:

    Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

    Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

  2. Activer les API Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API.

    Activer les API

  3. Vérifiez que votre projet Google Cloud contient le compte de service Compute Engine par défaut. Ce compte de service est créé lorsque vous activez l'API Compute Engine. Son nom est semblable à 12345-compute@developer.gserviceaccount.com.

    Dans la console Google Cloud, accédez à la page Comptes de service:

    Accéder à Comptes de service

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

    Si le compte de service Compute Engine par défaut n'existe pas, cliquez sur Créer un compte de service et renseignez les champs de la boîte de dialogue.

  4. Assurez-vous que le compte de service Compute Engine par défaut ou le compte de service que vous avez créé dispose du rôle Éditeur (roles/editor).

    Pour afficher les rôles attribués à votre compte de service, procédez comme suit:

    1. Dans la console Google Cloud, accédez à la page IAM :

      Accéder à IAM

      Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

    2. Sélectionnez Inclure les attributions de rôles fournies par Google.
    3. Si le compte de service utilisé par votre surveillance synthétique n'est pas répertorié, ou s'il ne s'est pas vu attribuer un rôle comprenant les autorisations du rôle Agent Cloud Trace (roles/cloudtrace.agent), accordez ce rôle à votre compte de service.
  5. Configurez les canaux de notification que vous souhaitez utiliser pour recevoir des notifications. Nous vous recommandons de créer plusieurs types de canaux de notification. Pour en savoir plus, consultez Créer et gérer des canaux de notification et Créer et gérer des canaux de notification par API.

Créer un vérificateur de liens non fonctionnels

Console

Lorsque vous créez une surveillance synthétique à l'aide de la console Google Cloud, une fonction Cloud (2e génération) est déployée et la surveillance de cette fonction Cloud est créée. Vous ne pouvez pas créer de surveillance synthétique qui surveille une fonction Cloud existante.

  1. Vérifiez que vous avez activé les API requises, que votre projet contient un compte de service Compute Engine par défaut et que ce compte dispose du rôle Éditeur (roles/editor). Pour en savoir plus, consultez la section Avant de commencer.
  2. Dans la console Google Cloud, accédez à la page  Surveillance synthétique:

    Accéder à Surveillance synthétique

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Surveillance.

  3. Sélectionnez Create Synthetic Monitor (Créer une surveillance synthétique).
  4. Pour le modèle, sélectionnez Outil de vérification des liens non fonctionnels.
  5. Attribuez un nom à la surveillance synthétique.
  6. Facultatif: mettez à jour le délai avant expiration de la réponse et la fréquence de contrôle, puis ajoutez des étiquettes définies par l'utilisateur.

  7. Configurez l'URI et les éléments à tester:

    1. Cliquez sur URI d'origine, puis saisissez un URI à tester. La valeur que vous saisissez doit être un point de terminaison HTTP ou HTTPS. Par exemple, vous pouvez saisir https://mywebsite.example.com.

    2. Facultatif: Dans le champ Nombre de liens à suivre, mettez à jour le nombre maximal de liens testés. La valeur par défaut de ce champ est 10.

    3. Facultatif: dans le champ Sélecteur d'éléments HTML, saisissez l'élément HTML auquel vous souhaitez faire correspondre la correspondance, sous forme de liste d'éléments séparés par une virgule. La valeur que vous saisissez est convertie en chaîne, puis transmise à la méthode Document: querySelectorAll().

      Par défaut, ce champ est défini sur a, ce qui correspond aux ancres. Vous pouvez saisir des valeurs telles que a, img lorsque vous souhaitez faire correspondre à la fois des ancres et des images.

    4. Facultatif: dans le champ Attributs HTML à suivre, saisissez les attributs HTML avec lesquels vous souhaitez établir une correspondance. Les valeurs séparées par une virgule que vous saisissez sont transmises individuellement à la méthode getAttribute().

      Par défaut, ce champ est défini sur href, qui spécifie l'URI du lien. Vous pouvez saisir plusieurs attributs (par exemple, href, src). Dans cet exemple, le code recherche l'attribut href, puis l'attribut src.

    5. Facultatif: Configurez l'attente du sélecteur, le délai avant expiration par URI, les nouvelles tentatives et les codes d'état attendus:

      1. Cliquez sur Afficher plus d'options.
      2. Pour configurer le vérificateur de liens rompus afin qu'il attende qu'un sélecteur spécifique apparaisse dans l'URI avant que des liens ne soient supprimés, saisissez les sélecteurs CSS dans le champ Attendre le sélecteur d'élément. La valeur que vous saisissez est convertie en chaîne, puis transmise à la méthode page.waitForSelector().

        Si le sélecteur n'apparaît pas avant l'expiration du délai, l'échec est enregistré dans les journaux.

      3. Modifiez l'ordre dans lequel les liens sont sélectionnés pour le test.

      4. Configurez les nouvelles tentatives.

        Par défaut, une requête est envoyée à chaque lien. Si la requête initiale échoue pour une raison quelconque (par exemple, si la commande expire ou si le code d'état HTTP n'est pas 200), le lien est marqué comme ayant échoué.

        Ce champ indique le nombre de fois où le vérificateur de liens non fonctionnels peut envoyer une requête HTTP à un lien avant de le marquer comme ayant échoué.

      5. Configurez un délai avant expiration qui s'applique à chaque URI. Par défaut, cette valeur est définie sur 30 secondes.

      6. Pour spécifier le code d'état attendu et le délai d'expiration pour un URI spécifique, cliquez sur Add per-link option (Option d'ajout par lien) et renseignez la boîte de dialogue.

  8. Facultatif: indiquez si des captures d'écran des réponses sont collectées et enregistrées. Si vous utilisez les paramètres par défaut, les captures d'écran ne sont pas enregistrées. Si vous activez la collecte de captures d'écran, vous pouvez en collecter pour tous les tests ou uniquement pour les tests ayant échoué. Cloud Monitoring utilise la convention suivante pour nommer le bucket Cloud Storage:

    gcm-PROJECT_ID-synthetics-LOCATION
    

    Dans l'expression précédente:

    • PROJECT_ID : ID de votre projet Google Cloud.
    • LOCATION: emplacement de votre bucket Cloud Storage.

    Vous avez la possibilité d'utiliser un bucket Cloud Storage existant.

  9. Vérifiez votre configuration et assurez-vous qu'elle est correcte et complète, puis créez votre fonction Cloud:

    1. Cliquez sur Créer une fonction.

      Les valeurs des champs Configuration de l'URI sont copiées dans l'objet Options du fichier index.js lorsque vous cliquez sur Créer une fonction. Après avoir cliqué sur Créer une fonction, modifiez la configuration en modifiant l'objet Options.

    2. Saisissez un nom à afficher, puis sélectionnez une région. Les noms doivent être uniques au sein d'une région.

    3. Dans la section Paramètres d'exécution, de compilation, de connexion et de sécurité, procédez comme suit:

      • Dans l'onglet Connexions, assurez-vous que l'option Autoriser tout le trafic est sélectionnée.

      • Vérifiez les paramètres par défaut et mettez-les à jour si nécessaire.

      • Dans le champ Compte de service d'exécution, sélectionnez un compte de service.

    4. Cliquez sur Apply function (Appliquer la fonction).

  10. Configurez la règle d'alerte:

    1. Facultatif: Mettez à jour le nom de la règle d'alerte et la durée de l'échec avant l'envoi des notifications.

    2. Ajoutez les canaux de notification.

  11. Cliquez sur Créer.

    La fonction Cloud que vous avez définie est créée et déployée en tant que 2nd gen, et la surveillance synthétique est créée.

API

Le processus de création d'un vérificateur de liens non fonctionnels à l'aide de l'API Cloud Monitoring est identique à celui de n'importe quelle autre surveillance synthétique. Pour en savoir plus sur l'utilisation de l'API Cloud Monitoring pour créer une surveillance synthétique, consultez la page Créer une surveillance synthétique, puis sélectionnez l'onglet Cloud Monitoring.

Les vérificateurs de liens non fonctionnels utilisent le modèle broken-links-ok. La configuration d'un vérificateur de liens non fonctionnels est spécifiée par l'objet options du fichier index.js.

Une fois la structure options.screenshot_options définie, le vérificateur de liens non fonctionnels collecte les captures d'écran et les enregistre dans un bucket Cloud Storage. Si le champ screenshot_options.storage_location n'est pas défini ou si la valeur est une chaîne vide, Monitoring crée un bucket Cloud Storage et les captures d'écran y sont enregistrées. Monitoring utilise la convention suivante pour nommer le bucket Cloud Storage:

gcm-PROJECT_ID-synthetics-LOCATION

Dans l'expression précédente:

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION: emplacement de votre bucket Cloud Storage.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

Le processus de création d'un vérificateur de liens non fonctionnels à l'aide de Terraform est identique à celui de tout autre moniteur synthétique. Si vous souhaitez en savoir plus sur l'utilisation de Terraform pour créer une surveillance synthétique, consultez la page Créer une surveillance synthétique, puis sélectionnez l'onglet Terraform.

Les vérificateurs de liens non fonctionnels utilisent le modèle broken-links-ok. La configuration d'un vérificateur de liens non fonctionnels est spécifiée par l'objet options du fichier index.js.

Une fois la structure options.screenshot_options définie, le vérificateur de liens non fonctionnels collecte les captures d'écran et les enregistre dans un bucket Cloud Storage. Si le champ screenshot_options.storage_location n'est pas défini ou si la valeur est une chaîne vide, Monitoring crée un bucket Cloud Storage et les captures d'écran y sont enregistrées. Monitoring utilise la convention suivante pour nommer le bucket Cloud Storage:

gcm-PROJECT_ID-synthetics-LOCATION

Dans l'expression précédente:

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION: emplacement de votre bucket Cloud Storage.

Explorer les résultats

Pour chaque exécution, un vérificateur de liens non fonctionnels effectue les opérations suivantes:

  • Génère une table, où chaque ligne fournit des informations sur le test d'un URI spécifique. Les informations récapitulatives incluent l'URI cible, la latence, l'état et l'identifiant de l'élément HTML. Par exemple, cette colonne affiche a lorsqu'un élément d'ancrage HTML est testé. Lorsque la ligne correspond à l'URI d'origine, la valeur de l'identifiant d'élément HTML est -.

  • Collecte des métriques, des données de trace et des données de journaux.

  • Collecte des captures d'écran, si elle est configurée.

Pour savoir comment explorer les données collectées, consultez Explorer les résultats de la surveillance synthétique.

Résoudre les problèmes

Cette section fournit des informations qui peuvent vous aider à dépanner vos vérificateurs de liens non fonctionnels.

Impossible de modifier la configuration d'un vérificateur de liens non fonctionnels

Vous avez créé un vérificateur de liens non fonctionnels à l'aide de la console Google Cloud, et vous souhaitez modifier les éléments HTML testés ou modifier le délai avant expiration de l'URI, les nouvelles tentatives, l'attente du sélecteur et les options par lien. Toutefois, lorsque vous modifiez le vérificateur de liens non fonctionnels, la console Google Cloud n'affiche pas les champs de configuration.

Pour résoudre ce problème, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page  Surveillance synthétique:

    Accéder à Surveillance synthétique

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Surveillance.

  2. Recherchez la surveillance synthétique que vous souhaitez modifier, cliquez sur Plus d'options, puis sélectionnez Modifier.
  3. Cliquez sur Modifier la fonction.
  4. Modifiez l'objet options dans le fichier index.js, puis cliquez sur Apply function (Appliquer la fonction).

    Pour en savoir plus sur les champs et la syntaxe de cet objet, consultez broken-links-ok/index.js.

  5. Cliquez sur Enregistrer.

Écran de la console Google Cloud indiquant l'échec de l'enregistrement des captures d'écran

Vous avez créé un vérificateur de liens non fonctionnels et vous l'avez configuré pour enregistrer des captures d'écran. Toutefois, la console Google Cloud affiche l'un des messages d'avertissement suivants, ainsi que des informations plus détaillées:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Pour résoudre ces problèmes, procédez comme suit:

  • Si le message InvalidStorageLocation s'affiche, vérifiez l'existence du bucket Cloud Storage spécifié dans le champ nommé options.screenshot_options.storage_location.

  • Affichez les journaux associés à votre fonction Cloud. Pour en savoir plus, consultez la section Rechercher des journaux.

  • Vérifiez que le compte de service utilisé dans la fonction Cloud correspondante dispose d'un rôle Identity and Access Management qui lui permet de créer des buckets Cloud Storage, d'y accéder et d'y écrire.

Étapes suivantes