Azure函数python没有命名参数的值

时间:2017-11-22 14:24:44

标签: python triggers azure-functions azure-blob-storage

我目前在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
}

不确定与存储的连接是否也应该在触发器绑定中,但是当我尝试没有它时,我仍然会得到相同的错误。

你们有没有想过如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

这不是定时器触发器/ blob输入绑定的合法语法。当您将blob path设置为blob/{test}时,这意味着您将blob路径绑定到函数触发器中的一条信息。例如。它可以用于绑定队列消息的属性。

在您的情况下,触发器是计时器,因此它没有可用作blob输入绑定参数的信息。

您无法将您的函数绑定到容器中的所有blob。如果您需要一次访问所有blob,则可能必须手动执行(无需专用绑定,只需使用SDK)。或者,创建一个将为每个添加/更改的blob触发的函数 - 如果您可以一次操作一个blob。