2017-10-13 2 views
0

Je rencontre un problème lorsque le nom de mon concentrateur d'événements est introuvable lorsque je publie ma fonction dans une application de fonction (cela fonctionne correctement localement si je l'exécute dans VS2017). Je reçois l'erreur suivante sur la fonction publiée dans le portail azure lorsque j'ouvre la fonction.Azure Fonction EventHubTrigger Attribut ne trouvant pas le nom du concentrateur d'événements

enter image description here

C'est l'attribut sur ma méthode Run.

public static void Run([EventHubTrigger("%eventHubName%", Connection = "eventHubConnection")]string data, TraceWriter log) 

Maintenant, si je ne comprends pas autour du eventHubName enveloppé du%, quand je le lance, il dira localement qu'il ne trouve pas le eventhub (en utilisant la chaîne de eventHubName littéralement au lieu de regarder dans la local.settings.json comme la chaîne de connexion), mais cela fonctionnera quand il sera publié. Je souhaite éviter de mettre le nom réel dans l'attribut car des environnements différents auront des noms de concentrateur d'événements uniques.

Répondre

1

Azure Functions utilisera le fichier local.settings.json lors de votre développement local. Lorsque votre application Function est en cours d'exécution sur Azure, elle lit les valeurs à partir des paramètres de l'application. L'utilisation de %zzz% est la manière correcte de lire les paramètres, ce qui me fait douter si vous avez un paramètre appelé eventHubName dans le paramètre d'application lorsque vous déployez sur Azure.

https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure