J'ai créé une application de fonction à Azure Palentel. Ensuite, mon projet de fonction ressemble à ceci
hôte.json strong> p > myfunction.cs strong> p> quand je cours la fonction , Je suis capable d'obtenir le premier journal. Mais après que rien de plus semble fonctionner (fonctionnant localement toutes les œuvres). INTÉRIEUR Que pourrais-je manquer ici? P> P> MYLIBJOBS CODE> J'ai
LOGGERConfiguration CODE> et
ELASTICEMAIL CODE> Mais rien de tout cela ne semble être appelé. Aucun journal de console ou aucun email n'a été envoyé. P>
3 Réponses :
Modifiez le code pour recevoir un iLogger dans le constructeur, il imprimera les erreurs. À propos des messages que je crois que c'est lancer et exception, que vous pourrez également attraper à l'aide du code fourni:
using System; using Microsoft.Extensions.Logging; public class MyLibJobs { private ILogger _log; public MyLibJobs(ILogger log) { _log = _log; } public async Task Run() { _log.Information("=== === === === === === === === === === === === === === ==="); _log.Information("shometing"); try { ElasticEmail.Send(...); } catch(Exception ex) { _log.LogError(ex, "error when trying to send email); throw; } } } [FunctionName("MyFunction")] public static async Task Run([TimerTrigger("0 */1 * * * *", RunOnStartup = true)]TimerInfo ti, ILogger log) { log.LogInformation($"Timer trigger function started at: {DateTime.Now}"); var lib = new MyLibJobs(log); await lib.Run(); log.LogInformation($"Timer trigger function executed at: {DateTime.Now}"); }
Microsoft.azure.webjobs.Host ne peut pas lier le type de paramètre iLogger
Vous devez importer à l'aide de Microsoft.extensions.logging;
N'avez toujours rien eu, le premier journal fonctionne, mais tout cela, pas même exception.
Si vous souhaitez utiliser un e-mail sur Azure Web App, le seul moyen est via un relais SMTP. Le service tiers tel que SendGrid fournit ces types de services. p> Réponse originale: strong> p> est-ce ce que vous voulez? p> Ceci est MyCode: P> fonction1.cs: strong> p> {
"version": "2.0",
"functionTimeout": "00:10:00",
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"Function": "Information",
"default": "Trace"
},
"console": {
"isEnabled": "true"
}
}
}
N'avez toujours aucun journal lorsqu'il entrera sur attendre lib.run () code>, pas même exception.
Malheureusement, comme je l'ai dit quand il se passe à Internal Lib semble que rien ne se passe. J'ai un webjob qui fait la même chose et là ça marche. Mais pas avec des fonctions.
imgur.com/sc76npf , après Démarrage ... Code> Cela devrait prendre un certain temps. .. où je télécharge un fichier CSV. Et
à partir de ... code> it de l'intérieur lib.run ()
@Pablo Utilisez SendGrid pour envoyer des emails: docs.microsoft.com/en-us/azure/azure-fonctions/...
@Pablo Veuillez noter que l'utilisation d'e-mail sur Azure Web app faut un relais SMTP. Vous ne pouvez choisir d'utiliser un tiers ou un transfert. Il n'y a pas d'autre moyen.
D'accord ... il semble que le problème principal que ce n'était pas avec le journal ou le courrier électronique, bien peut-être avec le journal (un peu), mais pas avec l'email. P>
Parce que j'avais le même code en cours d'exécution sur Azure Webjob (et de travailler), je pensais que cela devrait fonctionner de la même manière avec des fonctions d'azur (qui ne semble pas). C'est pourquoi ma question était axée sur les journaux et les courriels, mais la question pourrait être liée à autre chose. P>
En effet, Serilog semble ne pas fonctionner sur des fonctions azur. Donc, cela rend la crevée de Thiago Répondre à droite. Je devrais utiliser Au cours des étapes du programme, pour déclencher l'email, quelque chose d'autre devrait être fait, où je vais expliquer P> Li>
ol>
Le programme fait fondamentalement les étapes suivantes: P>
faire des recherches, j'ai lu que Pour contourner cela, je décide d'écrire mes fichiers à l'intérieur Je ne peux pas dire que c'est la réponse écrite. Mais c'est celui qui a fonctionné pour moi. P> microsoft.extensions.logging.logger code>. P> li>
chemin.gettempaath () code> modifie en conséquence la fonction fonctionne. Cela dit, je pense que cela pourrait être le principal problème. Je ne sais tout simplement pas quoi exactement parce que je n'ai jamais eu d'erreur, les fonctions ont juste couru comme non de demain. P>
"d: \ home \ data \ temp" code>. Là, je peux voir mes fichiers et toutes les étapes fonctionnent correctement. P>
mettre le code de mylibjobs
En outre, plutôt qu'un ilogueur dans les mylibjobs, vous devriez passer votre iLogger actuel: Var Lib = Nouveau Mylibjobs (journal);
Salut, ma solution fonctionne-t-elle?