将Azure函数与Python一起使用时,文件事务数量非常多

时间:2018-08-07 16:09:48

标签: azure azure-functions

我正在构建一个功能应用程序,该应用程序由队列消息触发,从Blob存储中读取一些输入文件,将它们组合在一起,然后将新文件写入Blob存储中。

函数每次运行时,我都会看到大量的文件事务,从而导致意外的开销。这些费用与“文件写入/读取/协议操作单位”有关。

该函数具有队列触发器绑定,指向blob存储的三个输入绑定和指向blob存储的输出绑定

Function App在Python上运行(我知道这是实验性的)

查看存储帐户的指标时,每次运行函数时,都会出现5万个文件事务的峰值。使用由队列消息触发的空函数进行测试,我还获得了5k个文件事务。 通常,该函数将输出写到输出绑定位置(对于Python函数,这是Function App存储上的一个临时文件,我想然后将其复制回Blob存储)

在此related question中,怀疑存储的高成本与日志记录有关。就我而言,在hosts.json文件中未启用日志记录,并且我也已禁用了存储帐户上的日志记录。这尚未解决问题。 (Expensive use of storage account from Azure Functions

对于60KB的输出文件和2MB左右的输入文件,这些值是否正常? 这与Python的实现有关吗?还是所有语言都应该这样? 我可以避免吗?

1 个答案:

答案 0 :(得分:1)

V1函数中的python实现会导致效率低下,从而导致大量文件使用。这是一个已知的缺点。正在针对功能V2的python实现进行开发,而不会出现此问题。