如何通过REST API以GET方式执行Kusto查询
Kusto REST API GET 请求传递查询语句示例
要通过GET请求调用Kusto REST API获取查询结果,需要将数据库名和Kusto查询语句作为URL查询参数传递,其中查询语句必须做URL编码处理。以下是修改后的完整PowerShell示例:
# 获取访问令牌 $accessToken = (Get-AzAccessToken -ResourceUrl "https://MyKustoClusterName.westus2.kusto.windows.net").Token # 构造请求头 $authHeader = @{ 'Authorization' = 'Bearer ' + $accessToken 'Host' = 'MyKustoClusterName.westus2.kusto.windows.net' } # 定义Kusto查询语句(替换为你的实际查询) $queryText = "MyTableName | project column1, column2, column3" # 对查询语句进行URL编码,避免特殊字符破坏URL结构 $encodedQuery = [Uri]::EscapeDataString($queryText) # 指定目标数据库名(替换为你的实际数据库名) $databaseName = "MyDatabaseName" # 方式1:直接构造带参数的URI $uri = "https://MyKustoClusterName.westus2.kusto.windows.net/v2/rest/query?db=$databaseName&csl=$encodedQuery" $response = Invoke-RestMethod -Uri $uri -Method GET -Headers $authHeader # 方式2:通过-Query参数传递哈希表(效果与方式1一致) # $queryParams = @{ # db = $databaseName # csl = $encodedQuery # } # $response = Invoke-RestMethod -Uri "https://MyKustoClusterName.westus2.kusto.windows.net/v2/rest/query" -Method GET -Headers $authHeader -Query $queryParams
关键说明:
- 必填参数:
db指定要查询的Kusto数据库,csl是URL编码后的Kusto查询语句,这两个是GET请求的核心参数。 - URL编码:必须用
[Uri]::EscapeDataString()处理查询语句,否则|、空格这类特殊字符会导致请求失败。 - 请求头优化:GET请求无需
Content-Type头(无请求体),保留Authorization和Host即可。
内容的提问来源于stack exchange,提问作者Vinny
相关产品推荐
相关产品推荐

