如何在 Azure 存储帐户上找到我的热 LRS 写入操作的来源?

Pau*_*her 7 billing azure azure-storage

我们正在使用 Azure 存储帐户来存储一些文件,这些文件将由我们的应用程序根据用户需求下载。

即使不应该有写操作(至少我想不到),但我们在计费周期的几天内超出了包含的写操作(见图)。

摘录自我们的使用情况,显示我们在计费周期仅几天后就超过了 10K 的热写入操作

至于价格,还在限制范围内,但我还是想知道这是否正常,我该如何分析。除了我们正在使用的存储

  • 功能和
  • 应用服务(移动应用)

但它们都不应该导致那么多的写操作。我检查了我们函数的日志,最近没有一个访问队列或 blob 的函数处于活动状态。有一些函数会时不时地运行,但每隔几分钟才运行一次,并且根本不访问存储。

我不知道这是否相关,但我们的 blob 存储有一种周期性的入口(见下图)。周期大约为 1 小时,但每 5 分钟有 100 kB 的基线。

显示 blob 和队列入口的指标。

进一步分析存储帐户的指标,我发现 blob 每小时有 1.90k 事务,队列每小时有 1.3k 事务,这对我来说似乎非常特殊。(请注意,此图的分辨率为 1 小时,而前者的分辨率为 5 分钟)

指标显示了 blob 和队列上的许多入口操作。

我还能做些什么来分析写操作的来源?这让我很困扰,因为它似乎不应该是那样。

小智 7

我遇到了完全相同的问题;启用存储分析并检查$logs容器后,我发现许多日志条目表明,在对我的 Azure Functions 的每个请求时,这些写入操作都会针对以下容器对象发生:

https://[function-name].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease

在我的 Azure Functions 代码中,我没有明确写入任何容器或文件,但我配置了以下两个应用程序设置:

  • AzureWeb 作业仪表板
  • AzureWeb 作业存储

因此,我在 Azure 中填写了一个支持自动收报机,并提出了以下问题:

  1. 写入操作是否由这些应用程序设置触发?我相信是这样,但请您确认一下。
  2. 如果删除这些应用程序设置,写入操作会停止吗?
  3. 您能否在高层次上描述这些操作发生在什么上下文中(例如日志记录?资源锁定,其他?)

我分别从 Azure 支持团队那里得到了以下答案:

  1. 你是对的。根据日志信息,我们可以看到“ https://[function-name].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease ”。此azure-webjobs-hosts文件夹与函数应用相关联,默认情况下创建以及创建函数应用。当功能应用程序运行时,它会将这些日志记录在配置为 的存储帐户中AzureWebJobsStorage
  2. 不能停止写操作,因为这些操作记录到存储帐户必要的日志通过Azure的功能用于在运行。请不要删除应用程序设置AzureWebJobsStorage。Azure Functions 运行时将此存储帐户连接字符串用于除 HTTP 触发的函数之外的所有函数。删除此应用程序设置将导致您的功能应用无法启动。顺便说一下,您可以删除AzureWebJobsDashboard它,它会停止监视器而不是上面的操作。
  3. 这些操作是为了记录函数应用的运行日志。当我们的后端为运行函数应用分配实例时,将发生这些操作。