子文件夹的 Azure 函数 blob 触发器
Posted
技术标签:
【中文标题】子文件夹的 Azure 函数 blob 触发器【英文标题】:Azure function blob trigger for subfolders 【发布时间】:2021-01-17 17:45:10 【问题描述】:我有一个容器文件夹,其中有许多子文件夹(大约 3000 个),一个文件可以放在任何子文件夹中。我需要对添加到子文件夹中的 blob 做出反应。如果将文件添加到子文件夹中,我仍然不知道如何创建 blob 触发器。
Example:
Excerpt from function.json:
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "rootContainer/name"
OK, a function is triggered if I receive the blob in rootContainer folder
Except from function.json:
"name": "*/myblob",
"type": "blobTrigger",
"direction": "in",
"path": "rootContainer/name"
or
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "rootContainer/*/name"
不行,没有触发函数
关于这个问题的问题不多,他们仍然没有提供正常的答案。在文档中也找不到任何信息。
谢谢!
【问题讨论】:
【参考方案1】:我注意到您使用*/myblob
作为名称,但这没有用。
例如,如果您希望在发送到rootContainer下的test等文件夹时触发该函数,则需要使用此function.json:
"bindings": [
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "rootContainer/test/name",
"connection": "AzureWebJobsStorage"
]
路径需要在编译时定义。
【讨论】:
感谢您的建议....!!!我正在寻找的场景不同......大约有 3000 个子文件夹,文件可以进入其中的任何一个,所以如果文件进入这些子文件夹中的任何一个,我可以有一个 blob 触发器来启动...... . @AmeyP 嗨,抱歉回复太晚了。您可以将触发条件设置为 3000 个文件夹的父文件夹。这样就可以处理你传入各个文件夹的文件了。如果要单独触发每个文件夹,则只能选择创建 3000 个触发器。让我知道这是否可以回答您的疑问。 @AmeyP 如果需要对每个文件夹中的文件进行不同的处理,可以将设置父文件夹后的blob名称作为触发条件,编写逻辑匹配前缀。 (Blob Storage 是平面存储,所以会使用文件夹信息作为 Blob 名称的前缀。)以上是关于子文件夹的 Azure 函数 blob 触发器的主要内容,如果未能解决你的问题,请参考以下文章
使用 epplus 从 blob 触发 azure 函数访问 excel 文件