Azure函数版本2.0-应用程序BlobTrigger无法正常工作

Dan*_*i T 5 c# azure azure-storage-blobs azure-functions

我有一个运行中的功能应用程序,它具有Blob输入和事件中心输出(在beta中工作)。随着最新的更改,我的功能不再起作用。我已经尝试根据发行说明更新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
}
Run Code Online (Sandbox Code Playgroud)

另外,将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")]
Run Code Online (Sandbox Code Playgroud)

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

Ars*_*yan 1

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

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

    在此输入图像描述

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

    在此输入图像描述

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

    在此输入图像描述

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

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

  6. 除了帐户连接之外,您还需要提供容器名称,如果您检查存储帐户的“Blobs”部分,则可以找到该名称。

    在此输入图像描述

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

    在此输入图像描述

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

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

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

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