与 Azure Functions 一起使用的存储帐户上的高文件 IO activity

High file IO activity on storage account used with Azure Function

我有一个相当简单的 Azure Function App,带有 3 个函数(2 个 HTTP 绑定,1 个心跳类型函数,每 5 分钟运行一次)。

在试图弄清楚为什么这个特定的功能应用程序比我们的其他项目导致更高的成本时,我发现成本几乎完全是由于文件存储 create/write 事务引起的存储成本。

似乎大约每小时都会出现约 5-8k 文件存储事务的峰值。函数应用程序的使用率非常低,因此我不确定将文件事务中的峰值归因于什么。

以前我看到超过 10k 笔交易的峰值。那是生产槽和辅助部署槽都配置为使用相同的存储帐户。我已经为 "cert" 部署槽创建了一个单独的存储帐户,现在看到类似的每小时峰值。

我尝试过的:

这种使用方式是否符合预期?在这种情况下,与我们拥有的其他功能应用程序相比,我们的存储成本要高得多 - 尽管大多数其他应用程序是用 C# 编写的。

这不是一大笔钱,但令人惊讶的是,Azure Functions 只收取几美分,而文件交易每月要花费几美元。

Azure Function的成本由两部分组成,一是Function的成本,二是App Insights的成本。

根据你的描述,这个函数不常被使用,你去掉了AzureWebJobsDashboard,那么我们可以排除两种情况,这个不会是Function里面的Storage操作的开销,也没有 Insights 造成的成本。

基于以上两点,我怀疑如此巨大的存储成本是来自于部署阶段。部署您的项目时,整个项目信息将传递到文件存储,并且此部署操作已执行多次。这应该是这笔费用的原因。