2016-04-22 1 views
1

In Azure Functions Je peux avoir un trigger de type "Queue" puis une entrée de type "documentdb". Je peux contrôler quel document est chargé et donné à la fonction à partir d'Azure DocumentDB en indiquant {queueTrigger}.Comment utiliser les liaisons DocumentDB pour les déclencheurs de file d'attente de json?

Cette fonctionne si le message sur ma file d'attente est en texte brut et l'ID d'un document qui existe dans mon document configuré.

Cependant, si mes messages sur le déclenchement de file d'attente sont JSON et contiennent l'ID du document comme une propriété, comment puis-je énoncer quelque chose comme:

{queueTrigger.id}

Tentative cela donne un modèle non valide:

2016-04-22T06: 39: 03.044 Exception lors de l'exécution de la fonction: Fonctions.sagaReady_queueMessage_updatedSaga. Microsoft.Azure.WebJobs.Host: Modèle non valide '{queueTrigger.id}'. Le nom du paramètre 'queueTrigger.id' n'est pas valide.

J'ai essayé quelques variantes, {{queueTrigger.id}}, {queueTrigger}.id, mais je n'ai pas été en mesure d'obtenir le résultat que j'attends.

Ceci fait partie d'un open source package qui a une expression régulière. Je peux voir qu'il supporte {blah} et {{blah}} mais sans connaître la liste des paramètres, je ne peux pas le câbler.

Est-ce que quelqu'un peut me signaler un autre code OSS ou faire la lumière sur ce point?

Andy

Répondre

1

Vous pouvez utiliser le nom de la propriété comme paramètre d'entrée, donc si vous avez un identifiant dans votre message de file d'attente JSON, il suffit d'utiliser {id}.

En C#, vous devez ensuite créer un POCO (une classe) qui expose cette propriété et utiliser cette classe comme type d'argument de déclenchement (par exemple Run(MyType queueParam, ...))

+0

Si j'utilise {id} comme vous le suggérez, il me met en garde contre il n'y a pas de valeur disponible: Exception lors de l'exécution de la fonction: Functions.sagaReady_queueMessage_updatedSaga. Microsoft.Azure.WebJobs.Host: Aucune valeur pour le paramètre nommé 'id'. – AndyElastacloud

+0

Est-ce C# ou Node? –

+0

Noeud actuel; mais je suis dans Azure Functions et polyglotte assez pour ne pas l'esprit de le développer dans l'un ou l'autre. – AndyElastacloud