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, puis déployer une fonction Cloud 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 la surveillance synthétique, consultez À 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, un délai avant expiration synthétique 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 demande, puis patiente au maximum dans un délai de 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 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 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 méthode console Google Cloud, vous êtes invité à indiquer chaque option de configuration la fonction Cloud est automatiquement mise à jour. Toutefois, si vous utilisez la commande 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.

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 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érifier que votre projet Google Cloud contient l'instance Compute Engine par défaut de service géré. Ce compte de service est créé lorsque vous activez dans 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 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 (2e génération) et la surveillance de cette fonction Cloud est créée. Vous ne pouvez pas créer une surveillance synthétique qui surveille une fonction Cloud existante.

  1. Assurez-vous d'avoir activé la et les API requises, que votre projet contient un compte de service Compute Engine par défaut, et que ce compte dispose Le rôle Éditeur (roles/editor) a été attribué. Pour plus d'informations, consultez la section Avant de commencer.
  2. Dans la console Google Cloud, accédez à 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 à la surveillance synthétique.
  6. Facultatif: mettez à jour les paramètres Response Timeout (Délai avant expiration de la réponse), Check Frequency (Fréquence de vérification) et ajouter 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 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. Toi pouvez saisir des valeurs telles que a, img lorsque vous souhaitez mettre en correspondance les deux 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 saisissez href, src. Dans cet exemple, le code recherche l'attribut href, puis recherche 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 renvoyé. 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: indiquez si vous souhaitez que les captures d'écran des réponses soient collectées et enregistré. 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 effectuer des captures d'écran pour tous les tests ou uniquement en cas d'échec. 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 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 modifiez 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 : effectuer les opérations suivantes:

      • Dans l'onglet Connexions, vérifiez 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 ainsi que la surveillance synthétique.

API

Le processus de création d'un vérificateur de liens non fonctionnels à l'aide de la méthode L'API Cloud Monitoring est identique au processus de création la surveillance 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, et sélectionnez 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 les 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. Si vous souhaitez en savoir plus sur l'utilisation de Terraform pour créer une surveillance synthétique, consultez la section Créer une surveillance synthétique, et sélectionnez Terraform.

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 les 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 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 vous aideront à résoudre les problèmes. 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 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 le vérificateur de liens non fonctionnels, la console Google Cloud n'effectue pas pour afficher les champs de configuration.

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

  1. Dans la console Google Cloud, accédez à 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 avertissements suivants messages 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 de cette option. du bucket Cloud Storage spécifié dans le champ 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 Cloud Functions 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