3
votes

L'appel des appels de fonction Azure échoue avec «L'hôte de la fonction n'est pas en cours d'exécution»

J'ai une fonction avec laquelle je joue depuis quelques mois (j'ai même des problèmes comme on peut le voir here ) et j'ai commencé à rencontrer des problèmes lorsque je commence à augmenter l'utilisation des tests à la" production ".

La fonction prend 2 valeurs, recherche une valeur correspondante dans une table Azure, la supprime si elle la trouve, puis ajoute les nouvelles valeurs ensemble. Cela fonctionne très bien dans les tests. Dès que je passe de quelques appels par seconde à 20 à 30 appels par seconde, cela échoue avec la réponse mentionnée ci-dessus.

Le problème réel, lorsque je me lance dans l'utilisation d'Insights, est qu'une exception System.InvalidOperationException est levée. Voici la pile d'appels:

2019-01-18T15:52:18.658 [Info] Function started (Id=fc6850e8-7554-46d8-81ec-4d1697c7b572)

Le message qui l'accompagne est:

Repository has more than 10 non-decryptable secrets backups (host). 

Je n'ai malheureusement aucune idée de ce que cela signifie. Toute recherche de ce résultat se fait dans quelques threads qui parlent de régénération des clés, mais encore une fois, je ne sais pas vraiment ce que cela signifie. Certains threads mentionnent le retour à la V1 des fonctions, mais je suis déjà sur la V1, donc ce n'est pas une option.

Que se passe-t-il avec cette fonction et comment y remédier?

Pour tous les employés Azure qui examinent cela, mon ID de fonction est:

System.InvalidOperationException:
   at Microsoft.Azure.WebJobs.Script.WebHost.SecretManager+<PersistSecretsAsync>d__27`1.MoveNext (Microsoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\Security\SecretManager.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 440)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Script.WebHost.SecretManager+<GetHostSecretsAsync>d__12.MoveNext (Microsoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\Security\SecretManager.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 104)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Script.WebHost.WebJobsSdkExtensionHookProvider+<GetOrCreateExtensionKey>d__6.MoveNext (Microsoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\WebHooks\WebJobsSdkExtensionHookProvider.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 71)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at Microsoft.Azure.WebJobs.Script.WebHost.WebJobsSdkExtensionHookProvider.GetExtensionWebHookRoute (Microsoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\WebHooks\WebJobsSdkExtensionHookProvider.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 64)
   at Microsoft.Azure.WebJobs.Script.WebHost.WebJobsSdkExtensionHookProvider.GetUrl (Microsoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\WebHooks\WebJobsSdkExtensionHookProvider.csMicrosoft.Azure.WebJobs.Script.WebHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 49)
   at Microsoft.Azure.WebJobs.Host.Config.ExtensionConfigContext.GetWebhookHandler (Microsoft.Azure.WebJobs.Host, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at Microsoft.Azure.WebJobs.Extensions.EventGrid.EventGridExtensionConfig.Initialize (Microsoft.Azure.WebJobs.Extensions.EventGrid, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)
   at Microsoft.Azure.WebJobs.Host.Executors.JobHostConfigurationExtensions.InvokeExtensionConfigProviders (Microsoft.Azure.WebJobs.Host, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at Microsoft.Azure.WebJobs.Host.Executors.JobHostConfigurationExtensions.CreateStaticServices (Microsoft.Azure.WebJobs.Host, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at Microsoft.Azure.WebJobs.JobHost.InitializeServices (Microsoft.Azure.WebJobs.Host, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at Microsoft.Azure.WebJobs.Script.Utility.CreateMetadataProvider (Microsoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Utility.csMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 362)
   at Microsoft.Azure.WebJobs.Script.ScriptHost.LoadBindingExtensions (Microsoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.csMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 966)
   at Microsoft.Azure.WebJobs.Script.ScriptHost.Initialize (Microsoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.csMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 299)
   at Microsoft.Azure.WebJobs.Script.ScriptHostManager.RunAndBlock (Microsoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHostManager.csMicrosoft.Azure.WebJobs.Script, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 178)


2 commentaires

Par augmenter l'utilisation des tests à la "production" , voulez-vous dire permuter l'emplacement ou quelle utilisation? Votre application de fonction est-elle également sur le plan de consommation?


J'ai le même problème et c'est un plan de consommation.


4 Réponses :


1
votes

Le message indique que cela a quelque chose à voir avec les clés de niveau hôte (secrets) dans votre fonction.

Donc, même si je n'ai pas de solution claire à ce problème (car je n'ai jamais rencontré ce problème), je vous suggère de vérifier le host.json dans D: \ home \ data \ Functions \ secrets et voyez s'il y a quelque chose d'inhabituel, par exemple il y a plus de 10 clés - comme l'indique le message d'erreur.


0 commentaires

2
votes

La suppression de D: \ home \ data \ Functions \ secrets a résolu le problème.

 Étape 0 Étape 1 Étape 2 Étape 3

En général, j'ai appris que quel que soit le comportement étrange que vous obtenez d'Azure Function, Kudu est toujours votre meilleur outil d'enquête.


5 commentaires

Quel est le but de ce dossier? Quels sont les effets de sa suppression?


Bonne question. D'après ce que j'ai compris, c'est l'endroit où KUDU suit les modifications des paramètres de l'application.


J'ai essayé de supprimer cela (même si je n'ai que quelques clés, mais il y avait un grand nombre de sauvegardes). Cela semble l'avoir corrigé (évidemment, les jetons ont changé).


Il revient à régénérer la clé comme auparavant ... stackoverflow.com/questions/53597614/...


Mon système avait les secrets dans Azure Storage Blob Storage nommés «azure-webjobs-secrets». Avec Storage Explorer, j'ai gaspillé tout le sous-dossier pour que mes fonctions recommencent.



1
votes

Si vous avez un Startup personnalisé, il se peut qu'une erreur bloque l'hôte pour démarrer.

Dans le portail, allez sur la page de la fonction (celle où vous pouvez voir le contenu de function.json ), il y aura (probablement) un message d'erreur. À partir de là, vous pouvez avoir une idée de l'endroit où rechercher l'erreur. Dans mon cas, une exception a été levée lorsque j'ai essayé de me connecter à Azure Key Vault à partir de la classe de démarrage, mais L'autorisation de liste n'a pas été donnée à la fonction.


1 commentaires

Beaucoup de fouilles dans les journaux plus tard, j'ai découvert que mon journal d'hôte contient l'exception de démarrage. Apparemment, après avoir échoué à démarrer le nombre de fois, une erreur secondaire concernant plus de 10 clés remplacera la cause première.



0
votes

Petit ajout à ce que les solutions sont mentionnées ci-dessus. J'étais confronté à ce même problème et même après avoir supprimé les fichiers secrets du dossier D: \ home \ data \ Functions \ secrets sur le site KUDU, j'obtenais toujours la même erreur.

J'ai pu résoudre ce problème en supprimant les fichiers host. *. Snapshot. *. Json du dossier azure-webjobs-secrets, qui se trouvait dans mon stockage d'objets blob sur azure. Fondamentalement, il y avait 10 fichiers instantanés de ce type.


0 commentaires