Créer un vérificateur de liens non fonctionnels

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

Pour en savoir plus sur les moniteurs synthétiques, consultez la section À propos des moniteurs synthétiques.

À propos des outils de vérification des liens non fonctionnels

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

Par défaut, un outil de vérification des liens brisés 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 envoie une requête, puis attend au maximum 30 secondes pour recevoir une réponse. 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 que la réponse a réussi. Le vérificateur n'effectue pas de nouvelles tentatives.

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

Les vérificateurs de liens non fonctionnels utilisent broken-links-ok. modèle. La configuration d'un vérificateur de liens non fonctionnels est spécifiée par le paramètre Objet options du fichier index.js. Si vous créez votre vérificateur à l'aide de la console Google Cloud, vous êtes invité à saisir chaque option de configuration et la fonction Cloud Run est mise à jour pour vous. 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 Run.

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 accorder le les rôles IAM suivants sur votre projet:

    Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

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

  2. Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.

    Enable the APIs

  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 et porte un nom semblable à 12345-compute@developer.gserviceaccount.com.

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

    Accédez à 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 remplir la boîte de dialogue.

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

    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 si il ne s'est pas vu attribuer un rôle incluant les autorisations du rôle de l'agent Cloud Trace (roles/cloudtrace.agent), puis attribuez 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 notifications canaux de distribution. Pour en savoir plus, consultez Créer et gérer des canaux de notification 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 nouvelle Fonction Cloud Run (2e génération) est déployé et que la surveillance de cette fonction Cloud Run est créée. Vous ne pouvez pas créer une surveillance synthétique qui surveille fonction Cloud Run existante.

  1. Assurez-vous d'avoir activé les API requises, que votre projet contient un compte de service Compute Engine par défaut et que ce compte a reçu le 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 Monitoring.

  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 au moniteur synthétique.
  6. Facultatif : Mettez à jour le Délai avant expiration de la réponse, la Fréquence de vérification et ajoutez des libellés définis 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 saisi doit être un point de terminaison HTTP ou HTTPS. Par exemple, vous pouvez saisir https://mywebsite.example.com.

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

    3. (Facultatif) Dans le champ Sélecteur d'élément HTML, saisissez le code HTML. auquel vous souhaitez faire correspondre l'élément, sous la forme d'une 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 pour lesquels vous souhaitez établir une correspondance. Les valeurs séparées par une virgule qui que vous saisissez sont individuellement transmis à la méthode getAttribute().

      Par défaut, ce champ est défini sur href, qui spécifie l'URI de le 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 codes d'état attendus:

      1. Cliquez sur Afficher plus d'options.
      2. Pour configurer le vérificateur de liens rompus afin d'attendre une connexion pour qu'il apparaisse dans l'URI avant que les liens ne soient détournés, saisissez Sélecteurs CSS Attendez que le sélecteur d'éléments soit disponible. 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 demande est envoyée à chaque lien et, si l'adresse e-mail initiale la requête échoue pour quelque raison que ce soit. Par exemple, la commande expire ou 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 rompus vous pouvez envoyer une requête HTTP à un lien avant de marquer le lien comme ayant échoué.

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

      6. Pour spécifier le code d'état attendu et le délai avant expiration pour un URI spécifique, cliquez sur Ajouter une option par lien et renseignez les champs de la boîte de dialogue.

  8. Facultatif : configurez si les 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 collecter des captures d'écran pour tous les tests ou uniquement pour ceux qui échouent. 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 que votre configuration est correcte et complète, puis créez votre fonction Cloud Run :

    1. Cliquez sur Créer une fonction.

      Les valeurs des champs de 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 dans la même 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.

      • Examinez 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 : Modifiez 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 Run que vous avez définie est créée et déployée ainsi que la surveillance synthétique.

API

Le processus de création d'un vérificateur de liens brisés à l'aide de l'API Cloud Monitoring est identique à celui de création de tout autre moniteur synthétique. Pour en savoir plus sur l'utilisation de l'API Cloud Monitoring pour créer une surveillance synthétique, consultez la section Créer une surveillance synthétique, puis sélectionnez l'onglet "Cloud Monitoring".

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

Lorsque la structure options.screenshot_options est définie, l'outil de vérification des liens non fonctionnels collecte des captures d'écran et les enregistre bucket Cloud Storage. Si le champ screenshot_options.storage_location n'est pas défini ou si le est une chaîne vide, Monitoring crée un Le bucket Cloud Storage et les captures d'écran y sont enregistrés. 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 en utilisant Terraform est identique au processus de création la surveillance synthétique. Pour en savoir plus sur l'utilisation de Terraform pour créer une surveillance synthétique, consultez Créer une surveillance synthétique, puis sélectionnez l'onglet Terraform.

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

Lorsque la structure options.screenshot_options est définie, l'outil de vérification des liens non fonctionnels collecte des captures d'écran et les enregistre bucket Cloud Storage. Si le champ screenshot_options.storage_location n'est pas défini ou si le est une chaîne vide, Monitoring crée un Le bucket Cloud Storage et les captures d'écran y sont enregistrés. 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, dans laquelle chaque ligne fournit des informations sur les tests de 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 répertorie a lorsqu'un élément d'ancrage HTML est testé. Lorsque la ligne correspond à l'URI d'origine, la valeur de l'identifiant de l'élément HTML est -.

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

  • 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 à résoudre les problèmes liés à vos outils de vérification des liens brisés.

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 pour modifier les éléments HTML testés ou si vous souhaitez 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 l'outil de vérification des liens brisés, 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 Monitoring.

  2. Recherchez la surveillance synthétique que vous souhaitez modifier, cliquez sur Autres options, puis sélectionnez Modifier.
  3. Cliquez sur Modifier la fonction.
  4. Modifiez l'objet options dans le fichier index.js, puis cliquez sur 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, accompagnés d'informations plus détaillées :

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Pour résoudre ces échecs, 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 Run. Pour en savoir plus, consultez la section Rechercher des journaux.

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

Étape suivante