curl 指标变量和维度

问题描述 投票:0回答:1

您好,感谢您的帮助。 我尝试在curl 命令中传递一对参数。 我已经知道如何传递单个变量,例如我的 MetricType、MetricName、当前时间和 $1 中的值。

我可以传递 Dim1Name 和值,如下所示:

curl --header "Content-Type: application/json"
--header "X-SF-TOKEN: ${TOKEN}" -X POST -i https://URL/datapoint
--data '{"'"${MetricType}"'": [{ "metric": "'"${MetricName}"'","value": 300,

    "dimensions": {"'"${Dim1Name}"'": "'"${Dim1Value}"'"}

    }]}'

我想要实现的是这样的,其中 DimOption=Dim1Name: Dim1Value 所以代码看起来像这样(但名称和值需要引号)。 是否可以 ? (如果我想发送 2+ 对参数,也可以使用逗号)

curl --header "Content-Type: application/json"
--header "X-SF-TOKEN: ${TOKEN}" -X POST -i https://URL/datapoint
--data '{"'"${MetricType}"'": [{ "metric": "'"${MetricName}"'","value": 300,

    "dimensions": {"'"${DimOption}'""}

    }]}'
variables curl key-value metrics dimension
1个回答
0
投票

多行 bash 脚本

您可以使用多行脚本来更轻松地处理正文,而不必担心引号景观:

发送.sh

data=$(cat data.json)

new_data=${data/@name/jane}
new_data=${new_data/@last_name/doe}

curl localhost:8080/foo -d "$new_data" -H "Content-Type: application/json"
echo

数据.json

{
    "hello": "@name @last_name"
}

结果

enter image description here

解释

  • 我们正在读取包含 json 内容的 data.json 文件
  • 在 data.json 内部,您可以使用占位符使其动态化
    • @名字
    • @姓氏
  • 然后使用 bash,我们将此值替换为所需的值
  • 最后将求值的json字符串发送到curl
© www.soinside.com 2019 - 2024. All rights reserved.