![](/img/trans.png)
[英]Read files from azure blob storage using python azure functions
[英]How to read multiple files from a storage container in Azure Functions
我有一个 Azure Functions 应用程序 (Python),我必须在其中读取存储在 Azure 存储帐户 (StorageV2) 中的多个 CSV 文件来验证它们。
但是,此文件夹中的文件名和 CSV 文件数量会随着时间而变化。 该应用程序使用 HTTP 绑定触发,最好动态检查文件夹的内容,然后按顺序处理文件夹中的所有 CSV 文件。
从文档来看,Azure Functions 似乎对输入和输出使用绑定,但是,示例仅显示(多个)指向单个文件的输入绑定,而不是任何类型的文件夹/容器。 因为我事先不知道文件的数量和文件名,这将很难实现。
例如:function.json
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"name": "inputcsv",
"type": "blob",
"dataType": "binary",
"path": "samplesCSVs/{singleCSVfile}",
"connection": "MyStorageConnectionAppSetting",
"direction": "in"
},
{
"type": "http",
"direction": "out",
"name": "$return"
}
]
"scriptFile": "__init__.py"
}
是否可以在此处指向文件夹? 或者以另一种方式动态读取存储帐户中的文件?
我能想到的唯一另一种选择是简单地提前压缩所有 CSV 文件,这样我就可以使用一个输入绑定到这个压缩文件,然后将它们解压到一个临时文件夹中来处理它们,但这会降低效率。
资料来源:
使用 Azure Blob 触发器,您只能一对一匹配,新 Blob 的更改或创建将触发函数的执行。
您可以在容器级别使用事件网格和筛选事件,并使用 Azure 函数来处理该特定事件:
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-event-overview
我似乎对 Azure Functions 的工作方式有误解。 因为它仍然是 Python 代码,而且 Azure 有一个 Python SDK 可用于连接到存储帐户和操作文件,所以这是实现我试图完成的任务的最佳方式。
Azure Functions 的输入/输出绑定似乎仅在使用特定触发器时才有帮助,但这不是我的问题所必需的。
感谢 zolty13 为我指明了正确的方向。
来源:
https://docs.microsoft.com/en-us/python/api/overview/azure/storage-blob-readme?view=azure-python
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.