使用私有终结点查询 Blob 存储的 Azure Monitor externaldata 运算符

问题描述

在 Azure Monitor 工作簿中编写 KQL 并使用 externaldata operator 从 Blob 存储检索数据时,是否可以通过私有端点访问 Blob 存储?

(externaldata (Title:string) [
    @"https://test.blob.core.windows.net/test/todos.json?...SAS.."
] with(format='multijson',ingestionMapping='[{"Column":"Title","Properties":{"Path":"$.title"}}]'))

解决方法

使用 KQL + 外部数据的特定行为/语法将非常特定于您要查询的内容。如果查询 ADX 集群,它可能会起作用,但对于查询日志分析可能不起作用,但实际上取决于端点的配置/设置。

您也可以在工作簿中使用“自定义端点”数据源,但身份验证开始成为问题。

如果我在自定义提供程序中使用该特定 url https://test.blob.core.windows.net/test/todos.json浏览器会拒绝它,说 blob 不支持 CORS:

Access to XMLHttpRequest at 'https://test.blob.core.windows.net/test/todos.json' from origin 'https://ms.portal.azure.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如果您要调用的特定 url 需要某种身份验证,那么工作簿和外部数据运算符都会变得有点困难

如果您可以使用 externaldata 语法在日志刀片或 ADX 工具中进行查询,那么它也应该在工作簿中工作。