azure - 与 Azure Function 一起使用的存储帐户上的文件 IO 事件较高

标签 azure azure-functions azure-storage kudu

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

当试图弄清楚为什么这个特定的功能应用程序比我们的其他项目造成更高的成本时,我发现这些成本几乎完全是由文件存储创建/写入事务引起的存储成本造成的。

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

enter image description here

  • Azure Functions 运行时:v2
  • 语言:javascript
  • 部署槽位:1(证书)
  • 应用服务计划:消耗
  • 区域:美国西部 2
  • azure-storage 软件包版本:2.10.3
  • 部署方法:使用 Azure Portal (kudu) 连接到 GitHub 存储库

之前我看到交易量激增超过 10,000 笔。这是生产插槽和辅助部署插槽都配置为使用相同存储帐户的情况。此后,我为“cert”部署槽创建了一个单独的存储帐户,该帐户现在每小时出现类似的峰值。

我尝试过的:

  • 删除了 AzureWebJobsDashboard 应用设置连接字符串,因为我们正在使用应用程序见解(根据我在另一个类似问题上发现的评论)。
  • 将“cert”部署槽更改为使用与主部署槽不同的单独存储帐户,这样它们就不会互相干扰。
  • 重新启动功能应用。

这种使用行为是预期的行为吗?在这种情况下,与我们拥有的其他函数应用程序相比,我们的存储成本要高得多 - 尽管大多数其他函数应用程序都是用 C# 编写的。

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

最佳答案

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

根据你的描述,这个函数不常用,并且你把AzureWebJobsDashboard去掉了,那么我们可以排除两种情况,这不会是Function内部Storage的操作成本,也不是Insights造成的成本。

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

关于azure - 与 Azure Function 一起使用的存储帐户上的文件 IO 事件较高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58827281/

相关文章:

Azure Node Function w/Eventhub 输出绑定(bind)到动态路由 ADX 表

asp.net - Azure signalR + Azure http 触发器 - 部署时授权错误

python-3.x - 使用 azure-storage-blob 或 azure-storage 上传和删除 Azure 存储 Blob

node.js - 哈希与 Azure Blob 存储不匹配(完整性检查失败)

azure - 拥有许多小型 Azure 存储 Blob 容器(每个容器都包含一些 Blob)更好,还是拥有一个包含大量 Blob 的大型容器更好?

ios - 通过适用于 iOS 的 Facebook SDK 在 Azure 移动服务上每天一次的身份验证问题(500 错误)

azure - 通过 Azure Connect,我可以从辅助角色访问本地文件共享和打印机吗?

azure - 如何从 Azure 资源图中的 JSON 数组对象(示例 VM 数据磁盘)动态获取所有嵌套属性

c# - 使用 SharePoint Online 和 CSOM .NET Standard 更新用户配置文件的 Azure Functions 拒绝访问

sql-server - Azure 数据仓库中的表详细信息