Comment puis-je résoudre l'erreur de dépassement du délai de navigation de canary dans CloudWatch ?

Lecture de 4 minute(s)
0

Je souhaite résoudre l'erreur de dépassement du délai de navigation de canary dans Amazon CloudWatch.

Brève description

L'erreur Expiration du délai de navigation dans le canary se produit lorsqu'un navigateur ou un point de terminaison ne parvient pas à se connecter au canary dans le délai spécifié. Résolvez cette erreur en fonction des causes possibles suivantes :

  • Connexion du point de terminaison
  • Durée d'exécution du script canary
  • Générateur de flux de travail GUI
  • Complexité de page

Remarque : Lorsque vous créez un canary CloudWatch, vous pouvez configurer le délai d'expiration dans la section Configuration supplémentaire. Le délai d'expiration est une valeur de fonction AWS Lambda différente de la valeur de délai définie dans le code canary. Il est recommandé de définir une valeur de délai Lambda supérieure à celle du code canary. Si l'application ne répond pas, cela permet d'atteindre en premier le délai d'expiration du code canary.

Résolution

Connexion du point de terminaison

Pour déterminer si une connexion du point de terminaison est à l'origine d'une erreur d’expiration de délai, vérifiez les points suivants :

  • Assurez-vous que le canary atteint le point de terminaison spécifié et qu'il reçoit une réponse dans le délai imparti. Si le point de terminaison de surveillance utilise un pare-feu ou un proxy, assurez-vous qu'aucune règle ne bloque la connexion du point de terminaison pour le canary.
  • Si vous utilisez un serveur Amazon Virtual Private Cloud (Amazon VPC), vérifiez si le point de terminaison est accessible. Si le point de terminaison n'est pas accessible, vérifiez les restrictions relatives au groupe de sécurité ou aux listes de contrôle d'accès au réseau (ACL réseau).

Pour vérifier si un point de terminaison est accessible et répond dans le délai spécifié, exécutez la commande suivante :

Remarque : Remplacez example-endpoint-ip par l’adresse IP de votre point de terminaison, example-dns par votre DNS et example-port par votre port.

time curl http/(s)://[example-endpoint-ip/example-dns]:example-port

Durée d'exécution du script canary

Vérifiez le délai d'expiration du script canary. Si le délai d'expiration est élevé, augmentez-le dans le script canary afin de laisser suffisamment de temps au canary pour terminer les étapes de navigation. Il est recommandé d'augmenter le délai d'expiration afin qu'il corresponde au temps de réponse du point de terminaison.

Pour modifier le délai de pulsation du canary à partir du code canary, exécutez la commande suivante :

const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});

Générateur de flux de travail GUI

Si vous utilisez le générateur de flux de travail GUI, vérifiez si l’action Cliquer avec navigation sur un bouton ou un lien effectue correctement la redirection. La page Web utilise des opérations asynchrones et le délai d'expiration doit inclure le temps nécessaire pour effectuer ces opérations.

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

  • Pour modifier le délai d'expiration de l'action Cliquer avec navigation, exécutez la commande suivante :

    await Promise.all([  
               page.waitForNavigation({ timeout: 30000 }),  
               await page.click("example-button")
  • Si l'action Cliquer avec navigation ne redirige pas correctement la page, utilisez plutôt l'action Cliquer.

  • Pour calculer la réponse du point de terminaison dans le délai d'expiration configuré, exécutez la commande suivante :
    Remarque : Remplacez example-endpoint-ip et example-port par votre adresse IP et votre numéro de port.

    time curl http/(s)://[example-endpoint-ip]:example-port

Complexité de page

La complexité de page peut entraîner des problèmes d’expiration de délai. Si vous naviguez dans une page dynamique avec un code Javascript/DOM étendu, il se peut qu’elle nécessite des valeurs de délai d'expiration plus longues.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an