【问题标题】:Azure function version 2.0 - app blobTrigger not workingAzure 函数 2.0 版 - 应用 blobTrigger 无法正常工作
【发布时间】:2019-02-08 10:36:47
【问题描述】:

我有一个正常工作的函数应用程序,它有一个 blob 输入和一个事件中心输出(在测试版中工作)。 随着最新的变化,我的功能不再起作用。 我已经尝试根据发行说明更新 host.json 文件,但它没有引用 blob 触发器:

{


"version": "2.0",
  "extensions": {
      "blobTriggers" : {
        "name": "blob",
        "type": "blobTrigger",
        "direction": "in",
        "path": "iot3gblobs/{name}",
        "connection": "AzureWebJobsStorage"
      },

      "eventHubs": {
        "type": "eventHub",
        "name": "outputEventHubMessages",
        "path": "ioteventhub",
        "connection": "IoTEventHubConnection",
        "cardinality": "many",
        "direction": "out"
      }
    },
    "Host" : 
    {
      "LocalHttpPort": 7071,
      "CORS": "*"
    },
  "disabled": false
}

另外,升级时 Microsoft.NET.Sdk.Functions 从 1.0.14 到 1.0.19 无法识别 blobTrigger 属性,我的代码将无法编译:

[FunctionName("iotserverparser")]
        public async static Task Run(
            [BlobTrigger("iot3gblobs/{name}", Connection = "AzureWebJobsStorage")]
            Stream blob,
            [EventHub(
                "outputEventHubMessages", Connection =
                    "IoTEventHubConnection")]

如前所述,这是因为上次 Azure Function App 更新,我还没有看到任何关于如何在这个新的 2.0 版本中使用 Blob 触发器的示例。

【问题讨论】:

  • 您需要为 blob 存储绑定使用新包。 Microsoft.Azure.WebJobs.Extensions.Storage @ 3.0.0-beta8(检查“预发布”)应该使这些触发器再次编译。总的来说,最新的 Azure Func 更改破坏了很多东西:github.com/Azure/Azure-Functions/issues/928
  • 谢谢,@Svend - 成功了!真是一团糟……
  • 是的,一团糟是轻描淡写。这个周末我在这个上浪费了 10 个小时(以及其他重大变化)

标签: c# azure azure-functions azure-blob-storage


【解决方案1】:

要将 Azure Function 与 Blob 文件更新连接,请执行以下步骤。

  1. 单击“功能”菜单中的“+”图标。

  2. 然后选择“Azure Blob 存储触发器”:

  3. 弹出/侧边栏将打开后,您需要填写与 blob 相关的信息。
    这很简单,但首先,单击“新建”链接,它将弹出另一个视图,您可以在其中查看存储帐户列表。

  4. 确保从列表中选择您希望收到通知的确切存储帐户。

  5. 在“存储帐户连接”输入框下看到存储名称后(您可能还会看到存储名称末尾附加了一些附加标签,如“..._STORAGE”,没关系) .

  6. 除了帐户连接之外,您还需要提供容器名称,您可以在查看存储帐户“Blob”部分时找到该名称。

  7. 现在创建 blob 触发器之前的最终外观应该是:

这里确保您不要触摸 Path 输入下的 {name} 部分。需要该变量来反映更改的文件/blob 名称。

  1. 最后,单击“创建”按钮,然后尝试上传 blob 容器中的任何文件。 您应该会看到代表更改的日志。

此外,就是这样,不需要额外的引用 (#r) 或 usings 即可查看 blob 更改。

请注意,在“日志”部分下,blob 更改可能会有所延迟。 但是,如果一段时间后您仍然看不到任何更新,请再次检查您是否提供了正确的存储帐户和容器名称。为此,您可能需要再次创建 blob 触发器。

【讨论】:

    猜你喜欢
    • 2020-12-10
    • 2011-12-10
    • 1970-01-01
    • 2012-09-26
    • 2017-12-15
    • 2013-03-27
    • 2012-08-15
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多