Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Nota
A partir del 1 de junio de 2024, las aplicaciones de App Service recién creadas pueden generar un nombre de host predeterminado único que use la convención de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Los nombres de aplicación existentes permanecen sin cambios. Por ejemplo:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obtener más información, consulte Nombre de host predeterminado único para el recurso de App Service.
En este artículo se describe cómo usar Comprobación de estado en Azure Portal para supervisar las instancias de App Service. La comprobación de estado aumenta la disponibilidad de la aplicación al volver a enrutar las solicitudes fuera de las instancias en estado incorrecto y reemplazar las instancias si siguen en estado incorrecto. Para ello, haga ping a la aplicación web cada minuto, a través de una ruta de acceso que elija.
Tenga en cuenta que /api/health es solo un ejemplo. No hay ninguna ruta de acceso de Comprobación de estado predeterminada. Debe asegurarse de que la ruta de acceso que elija es una ruta de acceso válida que exista en la aplicación.
Nota
Waiting for health check response
, es probable que se deba a un error en la comprobación debido a un código de estado HTTP 307, lo que puede ocurrir si tiene habilitada la redirección HTTPS pero se ha deshabilitado HTTPS Only
./health
o /api/health
.Nota
Precaución
Los cambios de configuración de la comprobación de estado reinician la aplicación. Para minimizar el impacto en las aplicaciones de producción, se recomienda configurar los espacios de ensayo y cambiar a producción.
Además de configurar las opciones de la comprobación de estado, también puede configurar las siguientes opciones de la aplicación:
Nombre del valor de configuración de la aplicación | Valores permitidos | Descripción |
---|---|---|
WEBSITE_HEALTHCHECK_MAXPINGFAILURES |
2 - 10 | Número necesario de solicitudes con error para que una instancia se considere en estado incorrecto y se quite del equilibrador de carga. Por ejemplo, cuando se establece en 2 , las instancias se quitan después de dos pings con errores. (El valor predeterminado es 10 ). |
WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT |
1 - 100 | De forma predeterminada, para evitar sobrecargar las instancias correctas restantes, no se excluirá más de la mitad de las instancias del equilibrador de carga a la vez. Por ejemplo, si un plan de App Service se escala a cuatro instancias y tres son incorrectas, se excluirán dos. Las otras dos instancias (una correcta y otra incorrecta) seguirán recibiendo solicitudes. En un escenario en el que todas las instancias están en estado incorrecto, no se excluye ninguna. Para invalidar este comportamiento, establezca esta configuración de la aplicación en un valor entre 1 y 100 . Un valor mayor significa que se quitan más instancias incorrectas. (El valor predeterminado es 50 ). |
Comprobación de estado se integra con las características de autenticación y autorización de App Service. No se requiere ninguna configuración adicional si estas características de seguridad están habilitadas.
Si usa un sistema de autenticación propio, la ruta de comprobación de estado debe permitir el acceso anónimo. Para proporcionar seguridad para el punto de conexión de Comprobación de estado, primero debe usar características como restricciones de IP, certificados de cliente o una red virtual para restringir el acceso a la aplicación. Una vez que tenga esas características preparadas, podrá autenticar la solicitud de Comprobación de estado inspeccionando el encabezado x-ms-auth-internal-token
y validando que este coincida con el hash SHA256 de la variable de entorno WEBSITE_AUTH_ENCRYPTION_KEY
. Si estos elementos coinciden, significará que la solicitud de Comprobación de estado es válida y se ha originado en App Service.
Nota
Para la autenticación de Azure Functions, la función que actúa como punto de conexión de Comprobación de estado debe permitir el acceso anónimo.
using System;
using System.Security.Cryptography;
using System.Text;
/// <summary>
/// Method <c>HeaderMatchesEnvVar</c> returns true if <c>headerValue</c> matches WEBSITE_AUTH_ENCRYPTION_KEY.
/// </summary>
public bool HeaderMatchesEnvVar(string headerValue)
{
var sha = SHA256.Create();
string envVar = Environment.GetEnvironmentVariable("WEBSITE_AUTH_ENCRYPTION_KEY");
string hash = Convert.ToBase64String(sha.ComputeHash(Encoding.UTF8.GetBytes(envVar)));
return string.Equals(hash, headerValue, StringComparison.Ordinal);
}
Nota
El encabezado x-ms-auth-internal-token
solo está disponible en App Service para Windows.
Una vez habilitada Comprobación de estado, puede reiniciar y supervisar el estado de las instancias de la aplicación desde la pestaña instancias. La pestaña de instancias muestra el nombre de su instancia y el estado de la instancia de esa aplicación. También puede reiniciar manualmente la instancia desde esta pestaña.
Si el estado de su instancia de aplicación "no es seguro", puede reiniciar la instancia manualmente utilizando el botón de reinicio de la tabla. Tenga en cuenta que cualquier otra aplicación hospedada en el mismo plan de App Service que la instancia también se verá afectada por el reinicio. Si hay otras aplicaciones que usan el mismo plan de App Service que la instancia, se mostrarán en la hoja de apertura del botón Reiniciar.
Si reinicia la instancia y se produce un error en el proceso de reinicio, se le dará la opción de reemplazar el trabajo. (Solo se puede reemplazar una instancia por hora). Esto también afectará a las aplicaciones que usen el mismo plan de App Service.
En el caso de las aplicaciones de Windows, también puede ver los procesos a través del Explorador de procesos. Esto proporciona más información sobre los procesos de la instancia, incluido el recuento de subprocesos, la memoria privada y el tiempo total de CPU.
Para las aplicaciones de Windows, tiene la opción de recopilar información de diagnóstico en la pestaña Comprobación de estado. La habilitación de la recopilación de diagnósticos agrega una regla de recuperación automática que crea volcados de memoria para instancias incorrectas y las guarda en una cuenta de almacenamiento designada. Al habilitar esta opción, se cambiarán las configuraciones de recuperación automática. Si ya existen reglas de recuperación automática, se recomienda configurarlas a través de los diagnósticos de App Service.
Una vez habilitada la recopilación de diagnósticos, puede crear una cuenta de almacenamiento o elegir una existente para los archivos. Solo puede seleccionar cuentas de almacenamiento en la misma región que la aplicación. Tenga en cuenta que, al guardar, se reiniciará la aplicación. Después de guardar, si se detecta que las instancias del sitio son incorrectas después de ping continuos, puede ir al recurso de la cuenta de almacenamiento y ver los volcados de memoria.
Después de proporcionar la ruta de acceso de la comprobación de estado de la aplicación, puede supervisar el estado del sitio mediante Azure Monitor. En la hoja Comprobación de estado del portal, seleccione Métricas en la barra de herramientas superior. Se abre una nueva hoja en la que puede ver el historial de estado de las comprobaciones de mantenimiento del sitio y crear una nueva regla de alertas. La métrica de comprobación de estado agregará los pings correctos y mostrará errores solo cuando se considere que la instancia tiene un estado incorrecto en función del valor de umbral configurado para la comprobación de estado del equilibrio de carga. De forma predeterminada, este valor se establece en 10 minutos, por lo que se efectúan 10 pings consecutivos (1 por minuto) antes de que una instancia determinada se considere incorrecta y, solo entonces, se reflejará en la métrica. Para obtener más información sobre la supervisión de los sitios, consulte Cuotas y alertas de Azure App Service.
Si la aplicación solo se escala a una instancia y queda en estado incorrecto, no se quitará del equilibrador de carga, ya que eso haría que la aplicación se quede completamente fuera de servicio. Sin embargo, después de una hora de pings incorrectos continuos, la instancia se reemplaza. Escale horizontalmente a dos o más instancias para obtener la ventaja de volver a enrutar que ofrece la comprobación de estado. Si la aplicación se ejecuta en una sola instancia, todavía puede usar la característica de supervisión de Comprobación de estado para realizar un seguimiento del estado de la aplicación.
Las solicitudes de comprobación de estado se envían al sitio internamente, por lo que no se mostrarán en los registros de servidor web. Puede agregar instrucciones de registro en el código de comprobación de estado para mantener registros de cuándo se hace ping a la ruta de acceso de la comprobación de estado.
En App Service para Windows y Linux, las solicitudes de Comprobación de estado se envían mediante HTTPS cuando la opción Solo HTTPS está habilitada en el sitio. De lo contrario, se envían mediante HTTP.
No, la característica Comprobación de estado hace ping a la ruta de acceso del dominio predeterminado de la aplicación web. Si hay un redireccionamiento desde el dominio predeterminado a un dominio personalizado, el código de estado que devuelve Comprobación de estado no será 200. Será una redirección (301), que marca el estado incorrecto del trabajo.
Las instancias en estado incorrecto se quitarán siempre de la rotación del equilibrador de carga, independientemente de otras aplicaciones del plan de App Service (hasta el porcentaje especificado en WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT
). Cuando una aplicación de una instancia permanece en un estado incorrecto durante más de una hora, la instancia solo se reemplazará si todas las demás aplicaciones en las que Comprobación de estado está habilitada también tienen un estado incorrecto. Las aplicaciones que no tienen habilitada la comprobación de estado no se tendrán en cuenta.
Imagine que tiene dos aplicaciones (o una aplicación con una ranura) con Comprobación de estado habilitada. Se denominan App A y App B. Están en el mismo plan de App Service y el plan se escala horizontalmente a cuatro instancias. Si la Aplicación A tiene un estado incorrecto en dos instancias, el equilibrador de carga dejará de enviar solicitudes a la Aplicación A en esas dos instancias. Las solicitudes se seguirán enrutando a la Aplicación B en esas instancias, suponiendo que la Aplicación B esté en estado correcto. Si la Aplicación A permanece en estado incorrecto durante más de una hora en esas dos instancias, las instancias solo se reemplazarán si la Aplicación B también tiene un estado incorrecto en esas instancias. Si la Aplicación B tiene un estado correcto, las instancias no se reemplazarán.
Nota
Si hubiera otro sitio o ranura en el plan (App C) sin Comprobación de estado habilitada, no se tendría en cuenta para la sustitución de la instancia.
Si todas las instancias de la aplicación tienen un estado incorrecto, App Service no quitará las instancias del equilibrador de carga. En este escenario, quitar todas las instancias de aplicación en estado incorrecto de la rotación del equilibrador de carga provocaría una interrupción de la aplicación. Sin embargo, se seguirá produciendo la sustitución de la instancia.
La configuración de comprobación de estado no es específica de la ranura, por lo que después de un intercambio, la configuración de comprobación de estado del espacio intercambiado se aplicará a la ranura de destino y viceversa. Por ejemplo, si tiene habilitada la comprobación de estado para el espacio de ensayo, el punto de conexión configurado se aplicará a la ranura de producción después de un intercambio.
Sí, la comprobación de estado está disponible para App Service Environment v3.
Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraCursos
Módulo
Introducción a Azure Service Health - Training
Introducción a Azure Service Health y cómo obtener información del estado de la plataforma Azure.