Azure Function App Python Blob 触发器巨大的文件大小

Posted

技术标签:

【中文标题】Azure Function App Python Blob 触发器巨大的文件大小【英文标题】:Azure Function App Python Blob Trigger Huge file sizes 【发布时间】:2020-03-27 17:41:16 【问题描述】:

我正在使用带有 blob 触发器的 Azure 函数应用程序 (Python) 来处理 CSV 并将记录移动到事件中心。遵循标准文档后,我有一个工作代码(最多 50 行)。但是,我想知道如果文件的大小范围为几 GB,应该采用什么方法。 整个文件会一次性发送到 Azure 函数吗?如果需要以固定大小的块或逐行读取,Azure的触发器概念会支持吗?

我正在寻找python中上述问题的任何方法/代码,以避免将完整文件加载到天蓝色函数容器内存中。

【问题讨论】:

【参考方案1】:

如果您有一个不适合普通 Web 请求的文件,您可能会通过将其上传到对象存储实现(大概 Azure Blob 存储对您最方便)并将新的目标地址发送到函数。

AMQP messages(这些是事件中心的底层)确实更适合处理少量数据。您也许还可以将 CSV 中的每一行或每行块设为唯一消息,但这在很大程度上取决于您的用例。

然后您可能希望选择支持流的对象,而不是一次选择整个文件,例如 BlockBlobService here's a reasonable example showing how to do this。

【讨论】:

以上是关于Azure Function App Python Blob 触发器巨大的文件大小的主要内容,如果未能解决你的问题,请参考以下文章

.NET Azure Function App 使用 UpsertItemAsync 上传到 CosmosDB 速度非常慢,尤其是与 Python 的 CosmosClient 相比

发布后似乎没有触发 Azure Function App

从 Azure Function App 调用 Snowflake 过程

从 Azure Function App 访问带有防火墙的 Azure Blob 存储

Azure Blob Storage V2,来自 Azure Function App 的异常 API 调用,升级后

Azure Function App 对 Webhook 的初始响应