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

时间:2018-09-03 11:10:41

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

我有一个运行中的功能应用程序,该应用程序具有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
}

此外,升级时 从1.0.14到1.0.19的Microsoft.NET.Sdk.Functions无法识别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触发器的示例。

1 个答案:

答案 0 :(得分:1)

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

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

    enter image description here

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

    enter image description here

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

    enter image description here

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

  5. 您将看到存储名称出现在“存储帐户连接”输入框下(您还可以在存储名称的末尾看到一些附加标签,例如“ ..._ STORAGE”,可以)

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

    enter image description here

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

    enter image description here

  

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

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

仅此而已,不需要其他引用(#r)或using即可看到Blob的变化。

  

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