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

如何在Kusto http_request中传递查询参数?含GPS场景示例

Kusto http_request:动态URI使用与查询参数传递方案

问题概述

  • 如何在Kusto的http_request中传递查询参数(如示例中的wp.1参数)
  • 编写GPS坐标相关的Kusto函数时,是否允许使用动态URI,还是必须使用静态URI?
  • 有哪些可行的解决方案?

原始代码示例

let GpsLat = '47.2429490282';
let GpsLong = '9.3393486426';
let uri = @'http://dev.virtualearth.net/REST/V1/Routes?wp.0=45.980537,7.641618&wp.1={GpsLat},{GpsLong}&key=THE_KEY';
evaluate http_request(uri)

核心问题解答:动态URI是允许的

Kusto完全支持使用动态URI,不需要局限于静态URI。但注意:原始示例中的@'...'是逐字字符串,不会解析其中的{GpsLat}变量,需要用正确的字符串拼接或插值语法实现动态替换。


可行解决方案与代码示例

1. 字符串拼接/插值构建动态URI(基础方式)

使用strcat()函数或双引号字符串插值(Kusto支持双引号字符串内的变量替换)来构建URI,同时注意对参数进行URL编码(避免特殊字符导致请求失败)。

修正后的写法

let GpsLat = '47.2429490282';
let GpsLong = '9.3393486426';
// 用strcat拼接并编码参数,避免特殊字符问题
let uri = strcat(
    'http://dev.virtualearth.net/REST/V1/Routes?wp.0=45.980537,7.641618&wp.1=',
    url_encode(strcat(GpsLat, ',', GpsLong)),
    '&key=THE_KEY'
);
evaluate http_request(uri)

2. 使用http_request的query_parameters参数(推荐)

http_request支持第二个dynamic类型参数传递查询参数,Kusto会自动处理URL编码,代码更清晰且安全。

let GpsLat = '47.2429490282';
let GpsLong = '9.3393486426';
let base_uri = 'http://dev.virtualearth.net/REST/V1/Routes';
let query_params = dynamic({
    "wp.0": "45.980537,7.641618",
    "wp.1": strcat(GpsLat, ",", GpsLong),
    "key": "THE_KEY"
});
evaluate http_request(base_uri, query_params)

3. 封装为可重用Kusto函数

将逻辑封装成函数,方便重复调用,输入GPS坐标即可获取结果:

.create-or-alter function GetRouteFromGps(GpsLat:string, GpsLong:string) {
    let base_uri = 'http://dev.virtualearth.net/REST/V1/Routes';
    let query_params = dynamic({
        "wp.0": "45.980537,7.641618",
        "wp.1": strcat(GpsLat, ",", GpsLong),
        "key": "THE_KEY"
    });
    evaluate http_request(base_uri, query_params)
}

// 调用示例
GetRouteFromGps('47.2429490282', '9.3393486426')

注意事项

  • URL编码:如果参数包含特殊字符(如空格、&、=),必须使用url_encode()函数处理,或使用query_parameters参数让Kusto自动处理。
  • 权限限制:确保Kusto集群允许访问目标API(需在集群的出站规则中配置允许的域名)。
  • 密钥安全:避免在代码中硬编码API密钥,建议使用Kusto的机密存储,通过secret()函数调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:46:00