Résoudre l'erreur : « Le runtime d'Azure Functions est inaccessible »
Cet article vous aide à résoudre la chaîne d'erreur suivante lorsqu'elle apparaît sur le portail Azure :
« Erreur : Le runtime d'Azure Functions est inaccessible. Cliquez ici pour plus d'informations sur la configuration du stockage. »
Ce problème se produit lorsque le runtime de Functions ne démarre pas. En général, ce problème survient lorsque l’application de fonction n’a plus accès à son compte de stockage. Pour plus d'informations, consultez Exigences relatives au compte de stockage.
Le reste de cet article vous aide à résoudre les causes spécifiques de cette erreur, notamment la façon d’identifier et de résoudre chaque cas.
Le compte de stockage a été supprimé
Chaque application de fonction nécessite un compte de stockage afin de fonctionner. Si ce compte est supprimé, vos fonctions ne s’exécuteront pas.
Commencez par rechercher le nom de votre compte de stockage dans les paramètres de votre application. AzureWebJobsStorage
ou WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
contient le nom de votre compte de stockage dans le cadre d’une chaîne de connexion. Pour plus d'informations, consultez Informations de référence sur les paramètres d'application d'Azure Functions.
Recherchez votre compte de stockage sur le portail Azure pour voir s'il existe toujours. S'il a été supprimé, recréez-le et remplacez vos chaînes de connexion de stockage. Votre code de fonction est perdu et vous devez le redéployer.
Les paramètres d'application du compte de stockage ont été supprimés
À l'étape précédente, si vous ne trouvez pas de chaîne de connexion de compte de stockage, cela signifie probablement qu'elle a été supprimée ou écrasée. La suppression des paramètres d'application survient généralement lorsque vous utilisez des emplacements de déploiement ou des scripts Azure Resource Manager pour définir les paramètres d'application.
Paramètres de l’application obligatoires
- Obligatoire :
- Obligatoire pour les fonctionnalités des plans Elastic Premium et Consommation :
Pour plus d'informations, consultez Informations de référence sur les paramètres d'application d'Azure Functions.
Assistance
- N’activez pas le paramètre d’emplacement pour ces paramètres. Si vous échangez les emplacements de déploiement, l'application de fonction s'arrête.
- Ne modifiez pas ces paramètres dans le cadre de déploiements automatisés.
- Ces paramètres doivent être fournis et valides au moment de la création. Un déploiement automatisé sans ces paramètres produit une application de fonction qui ne s’exécute pas et ce, même si les paramètres sont ajoutés ultérieurement.
Les informations d'identification du compte de stockage ne sont pas valides
Les chaînes de connexion de compte de stockage mentionnées précédemment doivent être mises à jour si vous régénérez les clés de stockage. Pour plus d'informations sur la gestion des clés de stockage, consultez Créer un compte de stockage Azure.
Le compte de stockage est inaccessible
Votre application de fonction doit être en mesure d’accéder au compte de stockage. Les principaux problèmes qui empêchent une application de fonction d'accéder à un compte de stockage sont les suivants :
L’application de fonction est déployée sur votre environnement ASE (App Service Environment) sans les règles de réseau appropriées pour autoriser le trafic vers et depuis le compte de stockage.
Le pare-feu du compte de stockage est activé et non configuré pour autoriser le trafic vers et depuis des fonctions. Pour plus d’informations, consultez Configurer Pare-feu et réseaux virtuels dans Stockage Azure.
Vérifiez que le paramètre
allowSharedKeyAccess
est défini surtrue
, qui est sa valeur par défaut. Pour plus d’informations, consultez Empêcher l’autorisation avec clé partagée pour un compte de stockage Azure.
Le quota d'exécution quotidien a été atteint
Si vous avez configuré un quota d’exécution quotidien, votre application de fonction sera temporairement désactivée et la plupart des commandes du portail seront indisponibles.
Pour vérifier le quota sur le portail Azure, sélectionnez Fonctionnalités de la plateforme>Paramètres de l'application de fonction dans votre application de fonction. Si vous avez dépassé le quota d'utilisation quotidienne que vous avez défini, le message suivant s'affiche :
« L'application de fonction a atteint le quota d'utilisation quotidienne et a été arrêtée pour les prochaines 24 heures. »
Pour résoudre ce problème, supprimez ou augmentez le quota d'utilisation quotidienne et redémarrez votre application. Sinon, l'exécution de votre application sera bloquée jusqu'au lendemain.
Application située derrière un pare-feu
L’application de fonction peut être inaccessible pour l’une des raisons suivantes :
Votre application de fonction est hébergée dans un environnement ASE (App Service Environment) à équilibrage de charge interne et elle est configurée pour bloquer le trafic Internet entrant.
Votre application de fonction présente des restrictions sur les adresses IP entrantes qui sont configurées pour bloquer l'accès à Internet.
Le portail Azure appelle directement l'application en cours d'exécution pour extraire la liste des fonctions et passe des appels HTTP vers le point de terminaison Kudu. Les paramètres au niveau de la plateforme, sous l'onglet Fonctionnalités de la plateforme, sont toujours disponibles.
Pour vérifier la configuration de votre environnement ASE :
- Accédez au groupe de sécurité réseau (NSG) du sous-réseau où réside l’environnement ASE.
- Validez les règles de trafic entrant pour autoriser le trafic provenant de l'adresse IP publique de l'ordinateur sur lequel vous accédez à l'application.
Vous pouvez également utiliser le portail à partir d'un ordinateur connecté au réseau virtuel où est exécutée votre application, ou à partir d'une machine virtuelle exécutée sur votre réseau virtuel.
Pour plus d'informations sur la configuration des règles de trafic entrant, consultez la section « Groupes de sécurité réseau » de l'article Considérations relatives à la mise en réseau pour un environnement ASE (App Service Environment).
Erreurs de conteneur sur Linux
Pour les applications de fonction qui s’exécutent sur Linux dans un conteneur, l’erreur Azure Functions runtime is unreachable
peut se produire suite à des problèmes avec le conteneur. Utilisez la procédure suivante pour examiner les journaux d’activité du conteneur pour les erreurs :
Accédez au point de terminaison Kudu de l’application de fonction, qui se trouve à l’emplacement
https://<FUNCTION_APP>.scm.azurewebsites.net
, où<FUNCTION_APP>
est le nom de votre application.Téléchargez les journaux Docker .zip fichier et passez en revue le contenu de votre ordinateur local.
Vérifiez les erreurs enregistrées qui indiquent que le conteneur n'est pas en mesure de démarrer correctement.
L'image du conteneur n'est pas disponible
Des erreurs peuvent se produire lorsque l'image de conteneur référencée est indisponible ou ne parvient pas à démarrer correctement. Vérifiez les erreurs enregistrées qui indiquent que le conteneur n'est pas en mesure de démarrer correctement.
Vous devez corriger les erreurs qui empêchent le démarrage correct du conteneur pour l’application de fonction.
Si l’image du conteneur est introuvable, vous verrez une erreur manifest unknown
dans les journaux de Docker. Dans ce cas, vous pouvez utiliser les commandes Azure CLI documentées à la section Comment cibler les versions d'exécution d'Azure Functions pour modifier l'image de conteneur référencée. Si vous avez déployé une image conteneur personnalisée, vous devez corriger l’image et redéployer la version mise à jour dans le registre référencé.
Le conteneur d’applications a des ports en conflit
Votre application de fonction peut ne pas répondre en raison d’une attribution de port en conflit au démarrage. Cela peut se produire dans les cas suivants :
- Votre conteneur dispose de services distincts s’exécutant où un ou plusieurs services sont liés pour se lier au même port que l’application de fonction.
- Vous avez ajouté une connexion hybride Azure qui partage la même valeur de port que l’application de fonction.
Par défaut, le conteneur dans lequel votre application de fonction s’exécute utilise le port :80
. Lorsque d’autres services du même conteneur essaient également d’utiliser le port :80
, l’application de fonction peut échouer. Si vos journaux affichent des conflits de ports, modifiez les ports par défaut.
Collision d’ID d’hôte
À partir de la version 3.x du moteur d'exécution Functions, les collisions d'identifiants d'hôtes sont détectées et enregistrées sous forme d'avertissement. Dans la version 4.x, une erreur est enregistrée et l'hôte est arrêté. Si le runtime ne peut pas démarrer pour votre application de fonction, passez en revue les journaux. S’il existe un avertissement ou une erreur concernant les collisions d’ID d’hôte, suivez les étapes d’atténuation des considérations relatives à l’ID d’hôte.
Paramètres d’application en lecture seule
La modification des paramètres d’application enlecture seule App Service peut rendre votre application inaccessible.
Remplacements de l’authentification ASP.NET
S’applique uniquement aux applications C# exécutant in-process avec l’hôte Functions.
La configuration de l’authentification ASP.NET dans une classe de démarrage des fonctions peut remplacer les services requis pour que le Portail Azure communique avec l’hôte. Cela inclut, sans s’y limiter, tout appel à AddAuthentication()
. Si les services d’authentification de l’hôte sont remplacés et que le portail ne peut pas communiquer avec l’hôte, il considère que l’application est inaccessible. Ce problème peut générer des erreurs telles que : No authentication handler is registered for the scheme 'ArmToken'.
.
Étapes suivantes
En savoir plus sur la supervision de vos applications de fonction :