Résoudre les problèmes de crochet de service
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
Utilisez cet article pour obtenir des conseils généraux de résolution des problèmes et des réponses aux questions fréquemment posées (FAQ).
Afficher les problèmes d’activité et de débogage
La page Crochets de service dans l’administrateur de l’accès web indique votre activité récente (14 derniers jours) pour chaque abonnement, et indique si un abonnement est activé, désactivé ou restreint.
Vous pouvez accéder à l’historique détaillé d’un abonnement, y compris les données de demande/réponse détaillées, ce qui est utile pour le débogage d’un service ou d’un abonnement problématique.
Pour afficher l’activité et status de vos abonnements, accédez à la page Crochets de service.
Pour afficher l’activité détaillée d’un abonnement, y compris les données complètes de demande, de réponse et de charge utile d’événement, sélectionnez un abonnement dans le tableau, puis sélectionnez Historique.
Pour afficher l’activité et status de vos abonnements, accédez à la page Crochets de service.
Pour afficher l’activité détaillée d’un abonnement, y compris les données complètes de demande, de réponse et de charge utile d’événement, sélectionnez un abonnement dans la table, puis sélectionnez Historique.
Échecs d’abonnement et probation (restreint)
Types d’échecs
Les échecs d’une notification Service Hooks sont regroupés dans les catégories suivantes :
- Échecs de terminal
- Échecs temporaires
- Échecs durables
Échecs de terminal
Le seul échec de terminal est le code d’état HTTP 410 (disparu). Lorsqu’un abonnement voit un échec de terminal, il est automatiquement désactivé, quelle que soit sa status précédente.
Échecs temporaires
Lorsqu’un abonnement voit un échec temporaire, il tente de renvoyer la notification jusqu’à huit fois, avec un délai croissant entre chaque tentative. Les échecs temporaires incluent les codes suivants :
- 408 (Délai d’expiration de la demande)
- 502 (passerelle incorrecte)
- 503 (Service indisponible)
- 504 (Délai d’expiration de la passerelle)
Séquence de nouvelles tentatives pour les échecs temporaires
Réessayer # | Temps d’attente |
---|---|
Avant la nouvelle tentative 1 | attendre ~1 seconde |
Avant la nouvelle tentative 2 | attendre ~2 secondes (délai total de 3 secondes) |
Avant la nouvelle tentative 3 | attendre ~4 secondes (délai total de 7 secondes) |
Avant la nouvelle tentative 4 | attendre ~8 secondes (délai total de 15 secondes) |
Avant la nouvelle tentative 5 | attendre ~16 secondes (délai total de 31 secondes) |
Avant la nouvelle tentative 6 | attendre ~32 secondes (délai total de 63 secondes) |
Avant la nouvelle tentative 7 | attendre ~60 secondes (temps d’arrêt maximal, délai total de 123 secondes) |
Avant la nouvelle tentative 8 | attendre ~60 secondes (temps d’arrêt maximal, délai total de 183 secondes) |
Si la notification épuise toutes ses nouvelles tentatives et continue de voir un échec temporaire pour chaque tentative, l’abonnement cesse d’essayer d’envoyer la notification et traite la notification comme s’il voyait un échec durable.
Échecs durables
Les échecs durables incluent tous les autres codes d’échec HTTP, par exemple : 404 (introuvable), 500 (erreur interne du serveur), et ainsi de suite.
Lorsqu’un abonnement voit un échec durable, il est mis en probation.
Probation
Pendant la période de probation, un abonnement est limité dans le nombre de notifications qu’il peut envoyer. Si l’abonnement continue d’atteindre des échecs durables, il devient de plus en plus limité et finalement désactivé. Si l’abonnement reçoit une réponse réussie pendant la période de probation, il est restauré à un état entièrement activé.
Séquence de sept tentatives maximales pendant que l’abonnement est en probation
Lorsqu’un abonnement est en probation, tous les nouveaux événements sont perdus. Une fois qu’une nouvelle tentative a réussi, l’abonnement est activé et les événements sont à nouveau publiés.
Réessayer # | Temps d’attente |
---|---|
Avant la nouvelle tentative 1 | attendre environ 20 minutes |
Avant la nouvelle tentative 2 | attendre environ 40 minutes (temps de probation total de 1 heure) |
Avant la nouvelle tentative 3 | attendre environ 1 heure 20 minutes (temps de probation total de 2,33 heures) |
Avant la nouvelle tentative 4 | attendre ~2 heures 40 minutes (temps de probation total de 5 heures) |
Avant la nouvelle tentative 5 | attendre ~5 heures 20 minutes (temps de probation total de 10,33 heures) |
Avant la nouvelle tentative 6 | attendre environ 10 heures 40 minutes (temps de probation total de 21 heures) |
Avant la nouvelle tentative 7 | attendre ~15 heures (temps d’interruption maximal, temps de probation total de 36 heures) |
Après sept nouvelles tentatives, l’abonnement status est défini sur DisabledBySystem si la notification du consommateur échoue.
Foire aux questions
Q : Quelle est la limite de charge utile d’un service-hook ?
Un: La limite de charge utile est de 2 Mo. Les charges utiles plus volumineuses entraînent une dégradation des performances et de la fiabilité. En guise de bonne pratique, les crochets de service doivent limiter la charge utile à 2 Mo ou moins.
Q : Que signifie le status Activé (restreint) ?
Un: Un abonnement devient restreint si trop d’échecs se produisent. Activé (restreint) équivaut à être en probation.
Q : Que signifie le status Désactivé (en raison de défaillances) ?
R : Un abonnement est automatiquement désactivé après une série d’échecs consécutifs sur une période prolongée ou une défaillance de terminal . Les types d’échecs temporaires sont retentés plusieurs fois avant d’être déclarés en échec. Les types d’échecs durables ne sont pas retentés. Voici des exemples de chaque type de défaillance.
- Temporaire : 408 (délai d’expiration de la demande), 502 (passerelle incorrecte), 503 (service non disponible), 504 (délai d’expiration de la passerelle)
- Terminal : 410 (Disparu)
- Durable : toutes les défaillances qui ne sont pas temporaires ou terminales
Q : Que signifie le status Désactivé (projet utilisateur gauche) ?
Un: L’utilisateur qui a créé l’abonnement n’est plus membre de l’équipe.
Q : Que dois-je essayer si un crochet de service ne fonctionne pas ?
Un: Vérifiez les éléments suivants :
Vérifier que l’abonnement est activé
Vérifiez que les paramètres de l’abonnement sont corrects (filtres d’événements et actions)
Examinez l’historique, en particulier en cas d’échecs
Q : Puis-je accorder à un utilisateur de projet normal la possibilité d’afficher et de gérer les abonnements de hook de service pour un projet ?
Un: Par défaut, seuls les administrateurs de projet disposent de ces autorisations. Pour les accorder directement à d’autres utilisateurs, vous pouvez utiliser l’outil en ligne de commande ou l’API REST Sécurité.
Q : Puis-je créer des abonnements par programmation ?
Un: Oui, utilisez des API REST.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez :Envoyer et afficher des commentaires pour