Superviser des instances App Service à l’aide du contrôle d’intégritéMonitor App Service instances using Health check

Échec du contrôle d’intégrité

Cet article utilise le contrôle d’intégrité dans le portail Azure pour superviser des instances App Service.This article uses Health check in the Azure portal to monitor App Service instances. Le contrôle d’intégrité augmente la disponibilité de votre application en supprimant les instances qui ne sont pas saines.Health check increases your application's availability by removing unhealthy instances. Votre plan App Service doit être mis à l’échelle vers deux instances ou plus pour utiliser le contrôle d’intégrité.Your App Service plan should be scaled to two or more instances to use Health check. Le chemin du contrôle d’intégrité doit vérifier les composants critiques de votre application.The Health check path should check critical components of your application. Par exemple, si votre application dépend d’une base de données et d’un système de messagerie, le point de terminaison de contrôle d’intégrité doit se connecter à ces composants.For example, if your application depends on a database and a messaging system, the Health check endpoint should connect to those components. Si l’application ne peut pas se connecter à un composant critique, le chemin doit retourner un code de réponse de niveau 500 pour indiquer que l’application n’est pas saine.If the application cannot connect to a critical component, then the path should return a 500-level response code to indicate the app is unhealthy.

Que fait App Service avec les contrôles d’intégrité ?What App Service does with Health checks

  • Quand un chemin est donné sur votre application, le contrôle d’intégrité effectue un test ping de ce chemin sur toutes les instances de votre application App Service par intervalles de 1 minute.When given a path on your app, Health check pings this path on all instances of your App Service app at 1-minute intervals.
  • Si une instance ne répond pas par un code d’état compris entre 200 et 299 (compris) à l’issue de deux requêtes ou plus, ou ne parvient pas à répondre à la commande ping, le système détermine qu’elle n’est pas saine et la supprime.If an instance doesn't respond with a status code between 200-299 (inclusive) after two or more requests, or fails to respond to the ping, the system determines it's unhealthy and removes it.
  • Après cette suppression, le contrôle d’intégrité continue d’effectuer un test ping sur l’instance qui n’est pas saine.After removal, Health check continues to ping the unhealthy instance. Si celle-ci continue à ne pas répondre correctement, App Service redémarre la machine virtuelle sous-jacente dans un effort de rétablir l’instance à un état sain.If it continues to respond unsuccessfully, App Service restarts the underlying VM in an effort to return the instance to a healthy state.
  • Si une instance n’est pas saine pendant une heure, elle sera remplacée par une nouvelle instance.If an instance remains unhealthy for one hour, it will be replaced with new instance.
  • De plus, dans le cadre d’un scale-up ou d’un scale-out, App Service effectue un test ping sur le chemin de contrôle d’intégrité pour vérifier que de nouvelles instances sont prêtes.Furthermore, when scaling up or out, App Service pings the Health check path to ensure new instances are ready.

Notes

Le contrôle d’intégrité ne suit pas les redirections 302.Health check doesn't follow 302 redirects. Une instance au plus sera remplacée chaque heure, avec un maximum de trois instances par jour et par plan App Service.At most one instance will be replaced per hour, with a maximum of three instances per day per App Service Plan.

Activer le contrôle d’intégritéEnable Health Check

Navigation du contrôle d’intégrité dans le portail Azure

  • Pour activer le contrôle d’intégrité, accédez au portail Azure et sélectionnez votre application App Service.To enable Health check, browse to the Azure portal and select your App Service app.
  • Sous Supervision, sélectionnez Contrôle d’intégrité.Under Monitoring, select Health check.
  • Sélectionnez Activer et fournissez un chemin d’URL valide pour votre application, par exemple /health ou /api/health.Select Enable and provide a valid URL path on your application, such as /health or /api/health.
  • Cliquez sur Enregistrer.Click Save.

Attention

Les modifications apportées à la configuration du contrôle d’intégrité entraînent le redémarrage de votre application.Health check configuration changes restart your app. Pour réduire l’impact sur les applications de production, nous vous recommandons de configurer des emplacements de préproduction et de basculer vers des emplacements de production.To minimize impact to production apps, we recommend configuring staging slots and swapping to production.

ConfigurationConfiguration

En plus de la configuration des options de contrôle d’intégrité, vous pouvez aussi configurer les paramètres d’application suivants :In addition to configuring the Health check options, you can also configure the following app settings:

Nom du paramètre d’applicationApp setting name Valeurs autoriséesAllowed values DescriptionDescription
WEBSITE_HEALTHCHECK_MAXPINGFAILURES 2 - 102 - 10 Nombre maximal d’échecs de test ping.The maximum number of ping failures. Par exemple, quand la valeur est 2, vos instances sont supprimées à l’issue de 2 échecs de test ping.For example, when set to 2, your instances will be removed after 2 failed pings. De plus, si vous effectuez un scale-up ou un scale-out, App Service effectue un test ping sur le chemin de contrôle d’intégrité pour vérifier que de nouvelles instances sont prêtes.Furthermore, when you are scaling up or out, App Service pings the Health check path to ensure new instances are ready.
WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT 0 - 1000 - 100 Pour éviter de submerger les instances saines, pas plus de la moitié des instances est exclue.To avoid overwhelming healthy instances, no more than half of the instances will be excluded. Par exemple, si un plan App Service est mis à l’échelle vers quatre instances et que trois d’entre elles ne sont pas saines, seules deux sont exclues au maximum.For example, if an App Service Plan is scaled to four instances and three are unhealthy, at most two will be excluded. Les deux autres instances (une saine et une non saine) continuent de recevoir des requêtes.The other two instances (one healthy and one unhealthy) will continue to receive requests. Dans le pire des cas, où aucune instance n’est saine, aucune ne sera exclue.In the worst-case scenario where all instances are unhealthy, none will be excluded. Pour remplacer ce comportement, définissez le paramètre d’application sur une valeur comprise entre 0 et 100.To override this behavior, set app setting to a value between 0 and 100. Plus la valeur est élevée, plus le nombre d’instances non saines supprimées est élevé (la valeur par défaut est 50).A higher value means more unhealthy instances will be removed (default is 50).

Authentification et sécuritéAuthentication and security

Le contrôle d’intégrité s’intègre aux fonctionnalités d’authentification et d’autorisation d’App Service.Health check integrates with App Service's authentication and authorization features. Aucun paramètre supplémentaire n’est nécessaire si ces fonctionnalités de sécurité sont activées.No additional settings are required if these security features are enabled. En revanche, si vous utilisez votre propre système d’authentification, le chemin du contrôle d’intégrité doit autoriser l’accès anonyme.However, if you're using your own authentication system, the Health check path must allow anonymous access. Si le protocole HTTP S uniquement est activé sur le site, la requête de contrôle d’intégrité est envoyée par le biais du protocole HTTP S.If the site is HTTP S-Only enabled, the Health check request will be sent via HTTP S.

Les équipes de développement des grandes entreprises doivent souvent adhérer à des exigences de sécurité pour les API exposées.Large enterprise development teams often need to adhere to security requirements for exposed APIs. Pour sécuriser le point de terminaison du contrôle d’intégrité, vous devez d’abord utiliser des fonctionnalités comme des restrictions d’adresse IP, des certificats clients ou un réseau virtuel pour restreindre l’accès à l’application.To secure the Health check endpoint, you should first use features such as IP restrictions, client certificates, or a Virtual Network to restrict application access. Vous pouvez sécuriser le point de terminaison du contrôle d’intégrité en exigeant que la propriété User-Agent de la requête entrante corresponde à HealthCheck/1.0.You can secure the Health check endpoint by requiring the User-Agent of the incoming request matches HealthCheck/1.0. La propriété User-Agent ne peut pas être falsifiée, car la requête a déjà été sécurisée par les fonctionnalités de sécurité précédentes.The User-Agent can't be spoofed since the request would already secured by prior security features.

SurveillanceMonitoring

Après avoir fourni le chemin de contrôle d’intégrité de votre application, vous pouvez superviser l’intégrité de votre site à l’aide d’Azure Monitor.After providing your application's Health check path, you can monitor the health of your site using Azure Monitor. Dans le panneau Contrôle d’intégrité du portail, cliquez sur Métriques dans la barre d’outils supérieure.From the Health check blade in the Portal, click the Metrics in the top toolbar. Un nouveau panneau s’ouvre, dans lequel vous pouvez voir l’état d’intégrité historique du site et créer une nouvelle règle d’alerte.This will open a new blade where you can see the site's historical health status and create a new alert rule. Pour plus d’informations sur la surveillance de vos sites, consultez le guide sur Azure Monitor.For more information on monitoring your sites, see the guide on Azure Monitor.

LimitesLimitations

Le contrôle d’intégrité ne doit pas être activé sur les sites de fonctions Premium.Health check should not be enabled on Premium Functions sites. En raison de la mise à l’échelle rapide des fonctions Premium, les demandes de contrôle d’intégrité peuvent entraîner des fluctuations inutiles dans le trafic HTTP.Due to the rapid scaling of Premium Functions, the health check requests can cause unnecessary fluctuations in HTTP traffic. Les fonctions Premium ont leurs propres sondes d’intégrité interne qui sont utilisées pour informer les décisions de mise à l’échelle.Premium Functions have their own internal health probes that are used to inform scaling decisions.

Étapes suivantesNext steps