使用系统托管身份无法将Kusto查询结果导出至存储Blob
解决Kusto一次性导出至Blob时托管身份认证禁用问题
问题原因
你使用的是一次性导出命令(.export async),但参考了连续导出的文档。默认情况下,Kusto集群不允许系统托管身份用于非流绑定的操作(比如一次性导出),需要额外开启集群级别的配置。
解决步骤
1. 启用集群的系统托管身份非流操作权限
执行以下Kusto管理命令,更新集群的托管身份策略,允许系统托管身份用于非流范围操作:
.alter-merge cluster policy managed_identity @'{"AllowedUsages": "All", "AllowSystemManagedIdentityForNonFlowScopedOperations": true}'
该设置会允许系统托管身份执行一次性导出这类非连续流的操作。
2. 修正导出命令格式
确保Blob存储的URL格式正确,避免多余的斜杠,示例正确命令:
.export async to json (h@https://<storage-account-name>.blob.core.windows.net/<container-name>/export-prefix-;managed_identity=system) <| YourKustoQuery
- 替换
<storage-account-name>、<container-name>为实际存储账户和容器名称 - 路径前缀后建议加
-作为分隔符,避免生成的文件名出现连续斜杠
3. 验证权限配置
- 确认Kusto系统托管身份已被授予存储账户(或目标容器)的Storage Blob Data Contributor角色
- 执行导出命令的账户需要拥有Kusto数据库的Admin或User权限(Viewer权限仅允许查询,无法执行导出写入操作)
内容的提问来源于stack exchange,提问作者Rita Zhao
相关产品推荐
相关产品推荐

