我目前在azure函数中使用python来创建一个聚合来自blob存储的数据的计时器触发器,并将结果放在cosmosDB中。
我的问题如下:当我在路径绑定中使用特定文件时,函数按预期运行。每当我更改它(以便取出容器中的所有blob)时,我都会收到以下错误:
Microsoft.Azure.WebJobs.Host: No value for named parameter 'test'.
下面是我的function.json绑定
{
"bindings": [
{
"name": "blobTrigger",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 * * * *",
"connnection": "AzureWebJobsStorage",
"path": "blob/{test}"
},
{
"type": "blob",
"name": "inputBlob",
"path": "blob/{test}",
"connection": "AzureWebJobsStorage",
"direction": "in"
},
{
"type": "documentDB",
"name": "outputDocument",
"databaseName": "database1",
"collectionName": "functioncollection",
"createIfNotExists": false,
"connection": "development_DOCUMENTDB",
"direction": "out"
}
],
"disabled": false
}
不确定与存储的连接是否也应该在触发器绑定中,但是当我尝试没有它时,我仍然会得到相同的错误。
你们有没有想过如何解决这个问题?
感谢。
答案 0 :(得分:0)
这不是定时器触发器/ blob输入绑定的合法语法。当您将blob path
设置为blob/{test}
时,这意味着您将blob路径绑定到函数触发器中的一条信息。例如。它可以用于绑定队列消息的属性。
在您的情况下,触发器是计时器,因此它没有可用作blob输入绑定参数的信息。
您无法将您的函数绑定到容器中的所有blob。如果您需要一次访问所有blob,则可能必须手动执行(无需专用绑定,只需使用SDK)。或者,创建一个将为每个添加/更改的blob触发的函数 - 如果您可以一次操作一个blob。