首页 > 解决方案 > 使用 Azure 应用服务(Web 应用)诊断日志创建应用程序日志不会触发 blob 创建事件

问题描述

我有一个 Azure Web 应用程序,并且我已打开诊断日志记录,以便我可以将我的应用程序跟踪消息记录为诊断日志。我正在使用 .net 记录器库进行诊断日志记录,它将来自 Web 应用程序方法的信息调试或审核跟踪消息添加到诊断日志 blob 存储帐户容器。

我注意到诊断日志在 blob 中添加了两个容器。在应用服务(Web 应用)中打开诊断日志记录时,一个用于应用程序日志,另一个用于Web 日志。

它创建的一个 blob 容器是大写字母,另一个是小写字母。根据我的理解,带有小写字母名称的 blob 容器是包含应用程序日志的容器。

现在,我为 Blob 存储上的“Microsoft.Storage.BlobCreated”事件创建了一个事件网格订阅。在事件网格中为此 blob 创建事件创建订阅时,我使用函数(带有 HTTP 触发器)作为端点。我还在过滤 blob 创建事件,并计划还包括主题名称过滤器,以确保我只接收应用程序日志的 blob 创建事件。我已经验证了带有我的应用程序审核或跟踪或诊断日志的应用程序日志存在于 blob 容器(所有小写字母)中,其中包含我从应用程序发送的所有详细信息。

现在我观察到的奇怪的事情是,在我的 Azure 无服务器函数中(当它作为 blob 文件创建的结果而被触发时),当我记录请求数据(我收到的输入)时,我只接收来自 Web 的事件日志(所有大写字母大小写的容器名称),到目前为止,我无法看到为应用程序日志触发的任何 blob 创建事件。我注意到这一点是基于“主题”字段,其中包含新创建的 blob 的文件路径。

所以我的问题是为什么我没有收到应用程序日志的 blob 创建事件?

这是用于创建使用 Blob 存储帐户资源 ID 的订阅的 Azure CLI 脚本:

端点= [功能端点]

includeEvents=Microsoft.Storage.BlobCreated

az eventgrid event-subscription create
--resource-id $storageid
--name alert-blog-storage-created
--endpoint $endpoint
--included -event-types $includeEvents

这是我用来创建事件网格订阅的参考链接。

标签: azureazure-functionsazure-blob-storageazure-eventgrid

解决方案


推荐阅读