【问题标题】:Azure functions python no value for named parameterAzure函数python没有命名参数的值
【发布时间】:2018-05-06 07:58:21
【问题描述】:

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

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

你们中有人知道如何解决这个问题吗?

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,所以我不能对 blob 存储容器中的所有文件使用计时器触发器吗?我必须手动完成吗?即在函数中将存储帐户分配为变量并从那里读取?
    • 您可以使用计时器触发器,但不能对所有文件使用 blob 输入绑定。是的,您可以手动读取文件。
    • 你好,米哈伊尔,很抱歉打扰你,但由于你对这个话题非常了解,我想我可能会问你。我现在按照您的建议使用 SDK,并且在尝试遍历我的 blob 容器中的文件时遇到 IOError。这是我的代码for blob in generator: json = json.load(data.get_blob_to_text('containername', open(blob.name))),我得到的错误是:IOError: [Errno 2] No such file or directory: 'test.json' 我意识到这可能是一个绝对路径问题?我应该如何解决这个问题?
    • @Nord112 你能用完整的代码示例创建一个新问题吗?
    猜你喜欢
    • 2014-10-31
    • 2015-07-03
    • 1970-01-01
    • 2012-11-05
    • 2021-07-02
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2016-06-01
    相关资源
    最近更新 更多