Azure的功能是function.json

问题描述:

我使用的是QueueTrigger具有以下特征:Azure的功能是function.json

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作为绑定。如果我手动编辑正确结合,因为它应该的function.json:

"bindings": [ 
{ 
    "type": "queueTrigger", 
    "queueName": "tester", 
    "connection": "AzureWebJobsStorage", 
    "name": "myQueueItem" 
}, 
{ 
    "name": "myBlob", 
    "type": "blob", 
    "path": "local/{queueTrigger}", 
    "direction": "in", 
    "connection": "AzureWebJobsStorage" 
}], 

我的问题是我怎么能表明所以function.json被适当地产生在C#代码,输入绑定?我知道输出绑定你可以使用out参数来修饰它,但是对于输入参数呢?这是一个错误还是我错过了什么?

+0

什么版本的CLI您使用的是?你正在使用哪个版本的'Microsoft.NET.Sdk.Functions'?你可以在你的csproj – ahmelsayed

+0

中发现我正在使用函数1.0.0并通过Visual Studio工具来做 – Dexterity

这是通过函数VS工具创作的吗?这只会生成一个描述触发器的函数.json [1]。其他绑定直接从C#属性中读取,就像使用WebJobs SDK一样。

该工具自动生成的function.json还应该具有“configurationSource”:“attributes”属性。这就是告诉函数运行时从属性读取绑定。 如果缺少,那么这可能意味着您有预发布工具,需要更新您的CLI和Microsoft.NET.Sdk.Functions软件包。

你能确认属性设置吗?

此外,您的“运行”方法应该有一个[FunctionName]属性。

[1]这是从预发布改变了构建工具,请参阅https://github.com/Azure/azure-webjobs-sdk-script/issues/1508

+0

是的,我正在使用属性,就像你在问题中看到的那样,它有配置源。我也有一个FunctionName属性,我只是省略了那些显示相关内容的东西。我正在使用VS 15.3.2。这一天刚刚更新。清楚的是,如果我手动将绑定添加到bin中的function.json,它将按预期工作。如果离开VS,它不起作用 – Dexterity

+0

当它不起作用时 - 您是在本地(通过CLI)还是在Azure中运行它?如果您在Azure中运行的版本已锁定为旧版本(在#1508修复之前),那么您会看到此故障。 –

+0

我在本地运行它。我设法通过在VS上进行修复并重新安装功能工具来正常工作。 – Dexterity