Azure 函数临时文件

Azure Function temp file

从 Azure Functions 中的端点获取内容时,我曾经能够在本地保存内容,然后在将其传递到 Azure Functions 中输出之前处理这些内容。

现在我有了这个设置:

1:当我调用我的端点时会发生什么

2:我的功能代码

3:我对函数的调用

4:函数调用后C:\Local\Temp的内容

根据我的函数代码(2),文件C:\local\Temp\cspcustomer.parquet应该存在,但是当试图读取文件时,我显然得到了一个错误。

此外,在Kudu(4)中查看C:\local\Temp的实际内容时,该文件实际上并不存在。

我的问题是,我的文件在哪里,所以我可以继续我的工作?

Azure 函数应用程序具有不同的文件系统存储位置。那些是

D:\local

这是本地临时存储,您不能共享此存储中的任何文件。临时存储意味着,一旦您从虚拟机中删除 Azure 函数,该存储就会消失。您最多可以在此处存储 500MB 数据。

如果您的 Azure function has to say 3 instances, each one of these instances will actually run on its own virtual machine,最终,每个实例都会有自己的 D:\local 存储,最多 500MB.

D:\Home

此存储是共享存储。没有任何限制,您的所有 Azure Function 应用程序实例都可以访问此存储。在这种存储情况下,如果您要删除 Azure 函数应用程序或将其移动到其他位置,则存储不会像 D:\local 那样消失。存储将保持原样。

您可以使用主目录而不是本地目录。

我可以看到主目录中可用的 parquet 文件

参考here

事实证明,一旦更新了 PowerShell workeer,这个问题就会得到解决:https://github.com/Azure/azure-functions-powershell-worker/issues/733

Azure Functions 中的 PowerShell 版本有点落后。会根据模块要求更新到7.2