2017-08-19 1 views
2

Je crée une application de fonction dans Azure et souhaite utiliser un déclencheur de file d'attente. Je sais comment configurer le nom de file d'attente au moment de la conception, par exemple:Comment configurer le nom de la file d'attente pour le déclencheur de file d'attente dans l'application Azure Function

[FunctionName("MyTestFunction")] 
 
public static void Run([QueueTrigger("myqueue-items", Connection = "testdelete")]string myQueueItem, TraceWriter log)

Cependant, je voudrais être en mesure de définir et de faire référence dans un fichier de configuration. Je suis conscient de l'existence de function.json (probablement celui-ci), host.json et local.settings.json, mais je ne sais pas comment définir un nom de file d'attente et le faire référencer dans la fonction . Si je déploie une nouvelle fonction créée dans Visual Studio (avec la nouvelle mise à jour 15.3), je peux voir ce qui suit dans le post-déploiement du fichier function.json (même si le fichier n'existe pas lorsque je le développe localement) :

"bindings": [ 
 
    { 
 
     "type": "queueTrigger", 
 
     "queueName": "myqueue-items", 
 
     "connection": "testdelete", 
 
     "name": "myQueueItem" 
 
    }

J'ai trouvé que si je crée ce fichier, et changer la « queueName » à quelque chose qui ne correspond pas à la valeur de la fonction réelle, il ne malheureusement pas le contourner (Cela aurait été trop facile je suppose).

Comment puis-je référencer les liaisons dans function.json dans l'attribut functions QueueTrigger? Vraisemblablement, quelle que soit la solution, cela me permettra de faire la même chose avec la gestion de la file d'attente de poison?

La raison pour laquelle je veux faire cela est parce que j'ai besoin de déployer plusieurs instances de la même fonction exacte, mais pointant chacune d'elles dans une file d'attente différente (afin de contourner les limites de mémoire maximum).

Merci.

+0

Je vous suggère de mettre en œuvre l'interface INameResolver. https://stackoverflow.com/questions/44901165/azure-function-flexible-test-and-production-queue-names – camelCase

Répondre

6

Pourriez-vous ne pas simplement référencer le nom de la file d'attente en tant que paramètre (en utilisant la syntaxe %settingName%) pour votre fonction App? Ensuite, dans chaque application de fonction que vous déployez, modifiez le paramètre au nom de la file d'attente requise.

[FunctionName("MyTestFunction")] 
public static void Run([QueueTrigger("%MyQueueName%", Connection = "testdelete")]string myQueueItem, TraceWriter log) 

et préciser la mise en local.settings.json pour exécuter localement

{ 
    "Values: { 
    "MyQueueName": "myqueue-items" 
    } 
} 
+1

Où puis-je trouver la documentation de la syntaxe% settingName%? –