Solución del error: "No se puede acceder a Azure Functions Runtime"
Este artículo ayuda a solucionar la cadena de error siguiente que aparece en Azure Portal:
"Error: No se puede acceder a Azure Functions Runtime. Haga clic aquí para obtener detalles sobre la configuración de almacenamiento".
Este problema se produce cuando no se puede iniciar el entorno de ejecución de Functions. La razón más común de este error es que la aplicación de funciones haya perdido el acceso a su cuenta de almacenamiento. Para más información, consulte Requisitos de la cuenta de almacenamiento.
La información del resto de este artículo le ayudará a solucionar causas específicas del error, así como a identificar y resolver cada caso.
Se ha eliminado la cuenta de almacenamiento
Cada aplicación de función requiere una cuenta de almacenamiento para funcionar. Si se elimina la cuenta, las funciones no se accionarán.
Empiece por buscar el nombre de la cuenta de almacenamiento en la configuración de la aplicación. AzureWebJobsStorage
o WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
contienen el nombre de la cuenta de almacenamiento incluida en una cadena de conexión. Para más información, consulte Referencia de configuración de aplicación para Azure Functions.
Busque la cuenta de almacenamiento en Azure Portal para ver si sigue existiendo. Si se ha eliminado, vuelva a crear la cuenta de almacenamiento y reemplace las cadenas de conexión de almacenamiento. El código de función se pierde y debe volver a implementarlo.
Se ha eliminado la configuración de la aplicación de la cuenta de almacenamiento
En el paso anterior, si no encontraba una cadena de conexión de la cuenta de almacenamiento, es probable que se eliminara o se sobrescribiera. La configuración de la aplicación se suele eliminar cuando se usan ranuras de implementación o scripts de Azure Resource Manager para la configuración de la aplicación.
Configuración de aplicación necesaria
- Obligatorio:
- Necesario para las funciones del plan de consumo y Elastic Premium:
Para más información, consulte Referencia de configuración de aplicación para Azure Functions.
Guía
- No seleccione Configuración de ranuras en ninguna de estas configuraciones. Si se intercambian las ranuras de implementación, la aplicación de funciones se interrumpe.
- No modifique esta configuración durante las implementaciones automatizadas.
- Esta configuración debe ser válida y proporcionarse en el momento de la creación. Si una implementación automatizada no tuviera esta configuración, la aplicación de funciones no se ejecutaría, ni siquiera aunque esta configuración se agregara más adelante.
Las credenciales de la cuenta de almacenamiento no son válidas
Al volver a generar las claves de almacenamiento deben actualizarse las cadenas de conexión de la cuenta de almacenamiento que se han comentado anteriormente. Para más información sobre la administración de las claves de almacenamiento, consulte Creación de una cuenta de Azure Storage.
No se puede acceder a la cuenta de almacenamiento
Es necesario que la aplicación de funciones pueda acceder a la cuenta de almacenamiento. Estos son los problemas comunes de bloqueo del acceso de la aplicación de funciones a la cuenta de almacenamiento:
La aplicación de funciones está implementada en App Service Environment (ASE) sin las reglas de red adecuadas para permitir el tráfico de entrada y salida de la cuenta de almacenamiento.
El firewall de la cuenta de almacenamiento está habilitado, pero no está configurado para permitir el tráfico de entrada y salida de Functions. Para más información, vea Configuración de Firewalls y redes virtuales de Azure Storage.
Compruebe que el valor
allowSharedKeyAccess
está establecido entrue
, que es su valor predeterminado. Para obtener más información, consulte Impedir la autorización con clave compartida para una cuenta de Azure Storage.
Se ha alcanzado la cuota de ejecución diaria
Si tiene configurada una cuota de ejecución diaria, la aplicación de funciones se deshabilitará temporalmente y muchos de los controles del portal dejarán de estar disponibles.
Para comprobar la cuota en Azure Portal, seleccione Platform Features (Características de la plataforma) >Configuración de aplicación de funciones en la aplicación de funciones. Si supera el valor establecido en Cuota de uso diario, aparecerá el siguiente mensaje:
"La aplicación de funciones ha alcanzado la cuota de uso diaria y se ha detenido hasta que comience el siguiente período de 24 horas".
Para resolver este problema, quite o aumente la cuota diaria y reinicie la aplicación. De lo contrario, la ejecución de la aplicación se bloqueará hasta el día siguiente.
Aplicación detrás de un firewall
Es posible que no se pueda acceder a la aplicación de funciones por alguna de las razones siguientes:
La aplicación de funciones se hospeda en una instancia de App Service Environment con equilibrio de carga interno y está configurada para bloquear el tráfico entrante de Internet.
La aplicación de funciones tiene restricciones de IP de entrada que están configuradas para bloquear el acceso a Internet.
Azure Portal realiza llamadas directamente a la aplicación en ejecución para obtener la lista de funciones y realiza llamadas HTTP al punto de conexión de Kudu. La configuración en el nivel de plataforma de la pestaña Platform Features (Características de la plataforma) sigue estando disponible.
Para comprobar la configuración de ASE:
- Vaya al grupo de seguridad de red (NSG) de la subred donde reside el ASE.
- Valide las reglas de entrada para permitir el tráfico procedente de la dirección IP pública del equipo desde donde se accede a la aplicación.
También puede usar el portal desde un equipo conectado a la red virtual que ejecuta la aplicación o una máquina virtual que se ejecuta en la red virtual.
Para más información acerca de la configuración de reglas de entrada, consulte la sección "Grupos de seguridad de red" de Consideraciones de red para una instancia de App Service Environment.
Errores de contenedor en Linux
En el caso de las aplicaciones de función que se ejecutan en Linux en un contenedor, el error Azure Functions runtime is unreachable
puede producirse como resultado de problemas con el contenedor. Use el procedimiento siguiente para revisar los registros de contenedor en busca de errores:
Vaya al punto de conexión de Kudu de la aplicación de funciones, que se encuentra en
https://<FUNCTION_APP>.scm.azurewebsites.net
(<FUNCTION_APP>
representa el nombre de la aplicación).Descargue el archivo Docker logs .zip y revise el contenido en su equipo local.
Compruebe si hay algún error registrado que indique que el contenedor no puede iniciarse correctamente.
Imagen de contenedor no disponible
Pueden producirse errores cuando la imagen del contenedor al que se hace referencia no está disponible o no se inicia correctamente. Compruebe si hay algún error registrado que indique que el contenedor no puede iniciarse correctamente.
Debe corregir los errores que impidan que el contenedor se inicie correctamente para la aplicación de funciones.
Cuando no se encuentra la imagen de contenedor, verá un error de manifest unknown
en los registros de Docker. En este caso, puede usar los comandos de la CLI de Azure que se documentan en Cómo seleccionar un destino para versiones en tiempo de ejecución de Azure Functions para cambiar la imagen de contenedor a la que se hace referencia. Si ha implementado una imagen de contenedor personalizada, deberá corregirla y, después, volver a implementar la versión actualizada de esta en el registro al que se hace referencia.
El contenedor de aplicaciones tiene puertos en conflicto
Es posible que la aplicación de funciones no responda debido a la asignación de puertos conflictivos al iniciarse. Esto puede ocurrir en los siguientes casos:
- Su contenedor tiene servicios separados que se ejecutan donde uno o más servicios intentan enlazar con el mismo puerto que la aplicación de la funciones.
- Ha agregado una conexión híbrida de Azure que comparte el mismo valor de puerto que la aplicación de funciones.
De manera predeterminada, el contenedor en el que se ejecuta la aplicación de funciones usa el puerto :80
. Cuando otros servicios del mismo contenedor también intentan usar el puerto :80
, la aplicación de funciones puede no iniciarse. Si los registros muestran conflictos de puertos, cambie los puertos predeterminados.
Colisión de identificadores de host
A partir de la versión 3.x del runtime de Functions, la colisión de ID de host se detecta y se registra como una advertencia. En la versión 4.x, se registra un error y se detiene el host. Si el runtime no se puede iniciar para la aplicación de funciones, revise los registros. Si hay una advertencia o un error sobre las colisiones de identificadores de host, siga los pasos de mitigación en Consideraciones sobre el identificador de host.
Configuración de la aplicación de solo lectura
Cambiar cualquier Configuración de la aplicación de App Service de solo lectura puede poner la aplicación de funciones en un estado inaccesible.
invalidaciones de autenticación de ASP.NET
Solo se aplica a las aplicaciones de C# que ejecutan en proceso con el host de Functions.
La configuración de ASP.NET autenticación en una clase de inicio de Functions puede invalidar los servicios necesarios para que Azure Portal se comunique con el host. Esto incluye, pero no se limita a, las llamadas a AddAuthentication()
. Si los servicios de autenticación del host se invalidan y el portal no se puede comunicar con el host, considera que la aplicación no es accesible. Este problema puede producir errores como: No authentication handler is registered for the scheme 'ArmToken'.
.
Pasos siguientes
Más información sobre la supervisión de las aplicaciones de funciones: