Ce document explique comment configurer un test périodique des liens contenus dans un URI en créant un moniteur synthétique. Vous spécifiez les options du test, telles que l'URI d'origine, le nombre de liens testés et le nombre de nouvelles tentatives, puis vous déployez une fonction Cloud Run préconfigurée. Pour vous aider à résoudre les problèmes et à déboguer, les moniteurs synthétiques enregistrent 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 que voient 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 brisés teste les liens de manière séquentielle. Un délai avant expiration synthétique global, configurable, est défini.
Par défaut, un vérificateur de 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 outils de vérification des liens brisés pour qu'ils attendent l'affichage d'un sélecteur.
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
. 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 brisés, pour modifier la configuration, mettez à jour l'objet options
et redéployez la fonction Cloud Run.
Avant de commencer
-
Pour obtenir les autorisations nécessaires pour afficher et modifier les moniteurs synthétiques à l'aide de la console Google Cloud, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet:
-
Éditeur Monitoring (
roles/monitoring.editor
) -
Développeur Cloud Functions (
roles/cloudfunctions.developer
)
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.
-
Éditeur Monitoring (
-
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.
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:
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, puis renseignez la boîte de dialogue.
Assurez-vous que le compte de service Compute Engine par défaut ou le compte de service que vous avez créé a reçu le rôle Éditeur (
roles/editor
).Pour afficher les rôles attribués à votre compte de service, procédez comme suit:
-
Dans la console Google Cloud, accédez à la page 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.
- Sélectionnez Inclure les attributions de rôles fournies par Google.
- Si le compte de service utilisé par votre moniteur synthétique n'est pas listé ou s'il ne s'est pas vu attribuer un rôle incluant les autorisations du rôle Agent Cloud Trace (
roles/cloudtrace.agent
), attribuez ce rôle à votre compte de service.
-
- Configurez les canaux de notification que vous souhaitez utiliser pour recevoir les notifications. Nous vous recommandons de créer plusieurs types de canaux de notification. Pour en savoir plus, consultez les pages Créer et gérer des canaux de notification et Créer et gérer des canaux de notification à l'aide d'API.
Créer un vérificateur de liens non fonctionnels
Console
Lorsque vous créez un moniteur synthétique à l'aide de la console Google Cloud, une nouvelle fonction Cloud Run (2e génération) est déployée et le moniteur de cette fonction Cloud Run est créé. Vous ne pouvez pas créer de moniteur synthétique qui surveille une fonction Cloud Run existante.
- 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. -
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.
- Sélectionnez Créer une surveillance synthétique.
- Pour le modèle, sélectionnez Outil de vérification des liens brisés.
- Attribuez un nom au moniteur synthétique.
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.
Configurez l'URI et les éléments à tester:
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
.Facultatif: dans Nombre de liens à suivre, modifiez le nombre maximal de liens testés. La valeur par défaut de ce champ est 10.
Facultatif: dans le champ Sélecteur d'éléments HTML, saisissez l'élément HTML que vous souhaitez faire correspondre, sous la forme d'une liste séparée 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 quea, img
lorsque vous souhaitez faire correspondre à la fois des ancres et des images.Facultatif: dans le champ Attributs HTML à suivre, saisissez les attributs HTML que vous souhaitez faire correspondre. Les valeurs séparées par des virgules que vous saisissez sont transmises individuellement à la méthode
getAttribute()
.Par défaut, ce champ est défini sur
href
, ce qui spécifie l'URI du lien. Vous pouvez saisir plusieurs attributs, par exemplehref, src
. Dans cet exemple, le code recherche l'attributhref
, puis l'attributsrc
.Facultatif: configurez l'attente du sélecteur, le délai avant expiration par URI, les nouvelles tentatives et les codes d'état attendus:
- Cliquez sur Afficher plus d'options.
Pour configurer le vérificateur de liens brisés de sorte qu'il attende qu'un sélecteur spécifique apparaisse dans l'URI avant d'extraire des liens, saisissez les sélecteurs CSS dans le champ Attendre le sélecteur d'éléments. La valeur que vous saisissez est convertie en chaîne, puis transmise à la méthode
page.waitForSelector()
.Si le sélecteur ne s'affiche pas avant l'expiration du délai avant expiration, l'échec est enregistré dans les journaux.
Modifiez l'ordre dans lequel les liens sont sélectionnés pour les tests.
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, la commande expire ou le code d'état HTTP n'est pas
200
), le lien est marqué comme ayant échoué.Ce champ spécifie le nombre de fois où le vérificateur de liens brisés peut envoyer une requête HTTP à un lien avant de le marquer comme ayant échoué.
Configurez un délai avant expiration qui s'applique à chaque URI. Par défaut, cette valeur est définie sur 30 secondes.
Pour spécifier le code d'état et le délai avant expiration attendus pour un URI spécifique, cliquez sur Add per-link option (Ajouter une option par lien) et remplissez la boîte de dialogue.
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 pouvez utiliser un bucket Cloud Storage existant.
Passez en revue votre configuration et assurez-vous qu'elle est correcte et complète, puis créez votre fonction Cloud Run:
Cliquez sur Créer une fonction.
Les valeurs des champs Configuration de l'URI sont copiées dans l'objet
Options
du fichierindex.js
lorsque vous cliquez sur Créer une fonction. Après avoir cliqué sur Créer une fonction, modifiez l'objetOptions
pour modifier la configuration.Saisissez un nom à afficher et sélectionnez une région. Les noms doivent être uniques dans une région.
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.
Cliquez sur Appliquer la fonction.
Configurez la règle d'alerte:
Facultatif: Modifiez le nom de la règle d'alerte et la durée de l'échec avant l'envoi des notifications.
Ajoutez les canaux de notification.
Cliquez sur Créer.
La fonction Cloud Run que vous avez définie est créée et déployée en tant que 2e génération, et le moniteur synthétique est créé.
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 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, le vérificateur de liens non fonctionnels collecte des 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 sont enregistrées dans ce bucket.
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 brisés à l'aide de Terraform est identique à celui de création de tout autre moniteur 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, le vérificateur de liens non fonctionnels collecte des 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 sont enregistrées dans ce bucket.
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 brisés effectue les opérations suivantes:
Génère un tableau, dans lequel chaque ligne fournit des informations sur les tests 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 indique a lorsqu'un élément d'ancre 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 elles sont configurées.
Pour en savoir plus sur l'exploration des données collectées, consultez la section Explorer les résultats de 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 brisés
Vous avez créé un vérificateur de liens brisés à 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 tentatives de nouvelle connexion, 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:
-
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.
- Recherchez le moniteur synthétique que vous souhaitez modifier, cliquez sur more_vert Plus d'options, puis sélectionnez Modifier.
- Cliquez sur Modifier la fonction.
Modifiez l'objet
options
dans le fichierindex.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
.Cliquez sur Enregistrer.
La console Google Cloud indique que les captures d'écran ne sont pas enregistrées
Vous avez créé un vérificateur de liens non fonctionnels et 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 fonction Cloud Run correspondante dispose d'un rôle Identity and Access Management qui lui permet de créer, d'accéder et d'écrire dans des buckets Cloud Storage.
Étape suivante
- Exemples pour les moniteurs synthétiques
- Gérer les moniteurs synthétiques
- Explorer les résultats de la surveillance synthétique