J'essaie de créer une fonction Azure qui va sortir dans un tableau. J'utilise l'Azure Function App, et donc, d'après ce que je comprends actuellement, le fichier function.json est généré pour moi par le SDK. Ma définition de fonction est la suivante :
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]HttpRequestMessage req,
TraceWriter log,
[StorageAccount("table_storage")] ICollector<TableItem> outputTable)
J'ai défini TableItem comme une classe qui hérite de TableEntity. Lorsque je déploie cette classe et que je regarde le fichier function.json généré, il ne mentionne pas la liaison des paramètres de sortie :
{
"generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.7",
"configurationSource": "attributes",
"bindings": [
{
"type": "httpTrigger",
"methods": [
"post"
],
"authLevel": "function",
"name": "req"
}
],
"disabled": false,
"scriptFile": "../bin/FunctionApp5.dll",
"entryPoint": "FunctionApp5.DeliveryComplete.Run"
}
Si je l'exécute depuis Visual Studio, j'obtiens l'erreur suivante :
Cannot bind parameter 'outputTable' to type ICollector`1
J'ai quelques questions à propos de ce comportement : la première et principale est la suivante : pourquoi le fichier function.json n'affiche-t-il pas le binding de sortie ? Deuxièmement, je comprends pourquoi il n'est pas possible de modifier ce fichier lors du déploiement à partir de VS, mais existe-t-il un moyen de gérer les liaisons sans avoir à deviner (j'ai découvert l'utilisation de ICollector dans ce poste ), mais je ne trouve rien d'autre qui dise qu'il devrait ou ne devrait pas être là.
Enfin, comment l'exécution depuis le bureau interagit-elle (ou non) avec la fonction publiée : se connecte-t-elle à la version publiée de la fonction, ou génère-t-elle le fichier function.json localement ?