You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell调用Kusto DB REST API遇405 Method Not Allowed错误求助

解决Kusto REST API调用405 Method Not Allowed错误

问题修复步骤

1. 修正变量定义错误

你的代码中uri = "https://$ClusterUri/databases/$DatabaseName/query"缺少变量前缀$,导致$uri未被正确赋值,直接引发请求地址异常。修改为:

$uri = "https://$ClusterUri/databases/$DatabaseName/query"

2. 规范集群URI格式

确保$ClusterUri的值是不带https://前缀的集群域名,例如:

$ClusterUri = "mycluster.kusto.windows.net"

如果你的$ClusterUri已经包含https://,构造$uri时要去掉重复前缀,避免生成无效URL。

3. 清理请求体冗余字段

Kusto查询API仅需要csl字段指定KQL语句,同时传入csl和query会导致请求格式错误,修改请求体如下:

$requestBody = @{
    csl = $kqlQuery
} | ConvertTo-Json

4. 修正AccessToken资源URI

获取令牌时,建议使用Kusto全局资源标识符https://kusto.azure.com/,确保令牌权限匹配:

$accessToken = (Get-AzAccessToken -ResourceUrl "https://kusto.azure.com/").Token

完整修正代码

Install-Module -Name Az -Scope CurrentUser -Force
Import-Module Az
Connect-AzAccount

$ClusterUri = "mycluster.kusto.windows.net" # 替换为你的集群域名(不带https://)
$DatabaseName = "mydatabase" # 替换为你的数据库名称

$accessToken = (Get-AzAccessToken -ResourceUrl "https://kusto.azure.com/").Token

$headers = @{
    "Authorization" = "Bearer $accessToken"
    "Content-Type" = "application/json"
}

$kqlQuery = @"
TableName // 可写完整KQL,比如:TableName | take 10
"@

$requestBody = @{
    csl = $kqlQuery
} | ConvertTo-Json

$uri = "https://$ClusterUri/databases/$DatabaseName/query"
try{
    $queryResult = Invoke-RestMethod -Uri $uri -Method POST -Headers $headers -Body $requestBody
    "Success"
    $queryResult
}
catch {
    $errorMessage = $_.Exception.Message
    if ($_.Exception.Response) {
        $responseContent = $_.Exception.Response.GetResponseStream()
        $reader = New-Object System.IO.StreamReader($responseContent)
        $responseBody = $reader.ReadToEnd()
        Write-Host "Error Message: $errorMessage"
        Write-Host "Response Body: $responseBody"
    } else {
        Write-Host "Error Message: $errorMessage"
    }
}

额外检查项

  • 确认你的Azure账号拥有目标Kusto集群和数据库的查询权限(如Viewer或Data Reader角色)。
  • 检查集群状态是否正常,网络无防火墙/NSG限制。

内容的提问来源于stack exchange,提问作者Sravani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:46:25