Pourquoi mon azure function ne consomme pas les messages Service bus ?

Jérôme Potier 0 Points de réputation
2025-03-25T12:07:05.7833333+00:00

J'ai presque une centaine de Azure Function App, qui sont principalement des Service bus topic trigger qui lisent une message json très léger, et qui font un insert/update en base de donnée.
Depuis 1 semaine, j'ai quelques Azure Function qui ne trigger plus, alors qu'il y'a des message dans leur topic/subscription respective. Si je relance le Function App, les messages seront consommé normalement, jusqu'a ce que d'autre Function App retombe dans cet état. Dans les logs, je vois que le Function App est en "drain mode" et ce, depuis plusieurs heures bien que des messages soient présent dans le topic, aussi depuis plusieurs heures.

Azure
Azure
Plateforme et infrastructure de cloud computing pour la génération, le déploiement et la gestion d’applications et de services à travers un réseau mondial de centres de données gérés par Microsoft.
473 questions
{count} votes

1 réponse

Trier par : Le plus utile
  1. Sampath 1,930 Points de réputation Personnel externe Microsoft
    2025-03-26T15:32:37.3833333+00:00

    Bonjour @Jerome Potier,

    L'une des principales raisons pour lesquelles votre fonction Azure ne consomme pas les messages du Service Bus pourrait être que le nom de connexion n'est pas correctement défini dans local.settings.json. Vérifiez également que le nom du topic et celui de la souscription dans votre Service Bus correspondent bien à ceux de votre code.

    Voici un exemple de fichier local.settings.json indiquant comment configurer la connexion :

    
    {
    
        "IsEncrypted": false,
    
        "Values": {
    
            "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    
            "FUNCTIONS_INPROC_NET8_ENABLED": "1",
    
            "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    
            "sampath": "Endpoint=sb://sampath45234.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=WUBauuZ+"
    
        }
    
    }
    
    

    Si votre fonction est déployée sur Azure, suivez ces étapes pour vérifier la configuration dans le portail Azure :

    • Ouvrez votre fonction dans Azure et accédez à l'onglet Intégration. Assurez-vous que le nom de connexion du Service Bus correspond à celui défini dans vos paramètres.
    • Votre code de fonction doit contenir la bonne référence de connexion, comme indiqué ci-dessous :
    
    public void Run([ServiceBusTrigger("sampathtopic", "sampathsubscription", Connection = "sampath")] string mySbMsg, ILogger log)
    
    
    • Si la connexion au Service Bus ne s'affiche pas, allez dans Variables d'environnement sous Paramètres d'application et ajoutez manuellement votre nom de connexion et sa valeur en utilisant la chaîne de connexion du Service Bus.

    Connexion au Service Bus

    • Consultez l'onglet Invocations pour voir les journaux. Les modifications peuvent prendre entre 5 et 10 minutes avant d’être appliquées.

    Journaux d’invocation

    Autres journaux

    J’ai traduit cette réponse depuis l’anglais, je m’excuse donc pour d’éventuelles erreurs.

    Si vous avez besoin d’aide sur un problème technique, créez un nouveau sujet pour que nous puissions vous aider. Pour toute autre question, cliquez sur Commenter.


Votre réponse

Les réponses peuvent être marquées comme Réponses acceptées par l’auteur de la question, ce qui permet aux utilisateurs de connaître la réponse qui a résolu le problème de l’auteur.