我正在使用具有以下签名的QueueTrigger:
public static void Run([QueueTrigger("tester")]string myQueueItem,[Blob("local/{queueTrigger}")]ICloudBlob myBlob,TraceWriter log)
生成的function.json中的绑定是:
"bindings": [
{
"type": "queueTrigger",
"queueName": "tester",
"connection": "AzureWebJobsStorage",
"name": "myQueueItem"
}
],
这不起作用,因为它不会将适当的blob绑定为in绑定。如果我手动编辑function.json,它应该正确绑定:
"bindings": [
{
"type": "queueTrigger",
"queueName": "tester",
"connection": "AzureWebJobsStorage",
"name": "myQueueItem"
},
{
"name": "myBlob",
"type": "blob",
"path": "local/{queueTrigger}",
"direction": "in",
"connection": "AzureWebJobsStorage"
}],
我的问题是如何在C#代码中指明输入绑定,以便正确生成function.json?我知道对于输出绑定,你可以使用out参数来装饰它,但是为什么呢?这是一个错误还是我错过了什么?
答案 0 :(得分:1)
这是通过Function VS工具编写的吗?这只会生成一个描述触发器[1]的function.json。其他绑定直接从C#属性中读取,就像使用WebJobs SDK一样。
该工具自动生成的function.json还应具有“configurationSource”:“attributes”属性。这就是函数运行时从属性中读取绑定的原因。 如果缺少,那么可能意味着您有预发布工具并需要更新CLI和Microsoft.NET.Sdk.Functions包。
您能确认属性已设定吗?
此外,您的“运行”方法应该有一个[FunctionName]属性。
[1]这已从工具的预发布版本更改,请参阅https://github.com/Azure/azure-webjobs-sdk-script/issues/1508