我有一个运行中的功能应用程序,该应用程序具有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触发器的示例。
答案 0 :(得分:1)
要将Azure Function与Blob文件更新连接,请执行以下步骤。
从“功能”菜单中单击“ +”图标。
然后选择“ Azure Blob存储触发器”:
将打开一个弹出式/侧边栏,然后您需要填写与blob相关的信息。
这很容易,但是首先,单击“新”链接,它将弹出另一个视图,您可以在其中查看您的存储帐户列表。
从列表中,确保选择要通知的确切存储帐户。
您将看到存储名称出现在“存储帐户连接”输入框下(您还可以在存储名称的末尾看到一些附加标签,例如“ ..._ STORAGE”,可以)
除了帐户连接,还需要提供容器名称,如果您选中存储帐户的“ Blob”部分,则可以找到该容器名称。
现在创建blob触发器之前的最终外观应该是:
请确保不要触摸路径输入下的
{name}
部分。需要该变量来反映更改的文件/ blob名称。
仅此而已,不需要其他引用(#r
)或using
即可看到Blob的变化。
请注意,“日志”部分下的blob变化可能会有所延迟。 但是,如果一段时间后仍然看不到任何更新,请再次检查您是否提供了正确的存储帐户和容器名称。为此,您可能需要再次创建Blob触发器。