问题描述
在 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 工具中进行查询,那么它也应该在工作簿中工作。