我们使用 Azure 存储帐户来存储我们的应用程序应根据用户需求下载的一些文件。
尽管不应该有写入操作(至少我能想到没有),但在计费周期的几天后,我们就超出了包含的写入操作(见图)。
就价格而言,还在限制范围内,但我还是想知道这是否正常,以及如何分析。除了我们正在使用的存储之外
但它们都不应该导致那么多的写操作。我检查了我们的函数的日志,并且访问队列或 blob 的日志最近都没有处于活动状态。有些功能会时不时地运行一次,但每隔几分钟才运行一次,而且这些功能根本不访问存储。
我不知道这是否相关,但我们的 blob 存储上有一种周期性的入口(见下图)。周期为 1 小时,但基线为每 5 分钟 100 kB。
进一步分析存储帐户的指标,我发现 Blob 每小时有 1.90k 事务,队列每小时有 1.3k 事务,这对我来说似乎很异常。(请注意,该图的分辨率是1小时,而前者的分辨率是5分钟)
我还能做些什么来分析写操作来自哪里吗?这让我有点困扰,因为它似乎不应该是这样的。
我也遇到过同样的问题;启用存储分析并检查后$logs
我发现许多日志条目表明,在每次向我的 Azure Functions 发出请求时,这些写入操作都会针对以下容器对象进行:
https://[函数名称].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease
在我的 Azure Functions 代码中,我没有明确写入任何容器或文件,但我配置了以下两个应用程序设置:
- AzureWeb作业仪表板
- AzureWeb作业存储
因此,我在 Azure 中填写了一张支持票,其中包含以下问题:
- 写操作是由这些应用程序设置触发的吗?我
相信是这样,但请您确认一下。
- 如果删除这些应用程序设置,写入操作会停止吗?
- 您能否概括地描述一下这些操作在什么上下文中发生(例如日志记录?资源锁定,其他?)
我从Azure支持团队分别得到了以下答复:
- 是的你是对的。根据日志信息,我们可以看到“https://[函数名称].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease”.
This
azure-webjobs-hosts
文件夹与 Function App 关联,默认情况下创建该文件夹以及创建 Function App。当函数应用程序运行时,它会将这些日志记录在配置为的存储帐户中AzureWebJobsStorage
.
- You 无法停止写操作因为这些操作将必要的日志记录到 Azure Functions 运行时使用的存储帐户。请不要删除应用程序设置
AzureWebJobsStorage
。 Azure Functions 运行时将此存储帐户连接字符串用于除 HTTP 触发函数之外的所有函数。删除此应用程序设置将导致您的函数应用程序无法启动。顺便说一句,你可以删除AzureWebJobsDashboard
它会停止Monitor而不是上面的操作。
- 这些操作是记录Function App的运行日志。当我们的后端分配用于运行函数应用程序的实例时,将发生这些操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)