0
votes

Azure Fonctions n'envoie pas de courrier électronique ou d'impression journal de console

J'ai créé une application de fonction à Azure Palentel. Ensuite, mon projet de fonction ressemble à ceci

​​ local.Settings.json xxx

hôte.json xxx

myfunction.cs xxx xxx

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 MYLIBJOBS J'ai LOGGERConfiguration et ELASTICEMAIL Mais rien de tout cela ne semble être appelé. Aucun journal de console ou aucun email n'a été envoyé.

Que pourrais-je manquer ici?


3 commentaires

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?


3 Réponses :


0
votes

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}");
}    


3 commentaires

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.



0
votes

mise à jour: strong>

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>

Entrez l'image Description ici 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"
    }
  }
}


5 commentaires

N'avez toujours aucun journal lorsqu'il entrera sur attendre lib.run () , 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 ... Cela devrait prendre un certain temps. .. où je télécharge un fichier CSV. Et à partir de ... 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.



0
votes

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.

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.

  1. 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 microsoft.extensions.logging.logger .

  2. Au cours des étapes du programme, pour déclencher l'email, quelque chose d'autre devrait être fait, où je vais expliquer

    Le programme fait fondamentalement les étapes suivantes:

    • a. Connectez-vous que cela a commencé
    • b. Téléchargez des données CSV
    • c. Écrivez ces données CSV dans un fichier CSV
    • d. Lisez le fichier CSV, comparez-le avec un autre et écrire un autre fichier CSV
    • e. Envoyez le fichier CSV Diff à une autre API
    • f. Enfin envoyer un courrier électronique avec le résumé sur ce qui a été fait

      faire des recherches, j'ai lu que chemin.gettempaath () 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.

      Pour contourner cela, je décide d'écrire mes fichiers à l'intérieur "d: \ home \ data \ temp" . Là, je peux voir mes fichiers et toutes les étapes fonctionnent correctement.

      Je ne peux pas dire que c'est la réponse écrite. Mais c'est celui qui a fonctionné pour moi.


0 commentaires