【发布时间】:2021-12-15 19:07:21
【问题描述】:
当我运行 jq 命令从 amazon cli 解析 json 文档时,我遇到了以下问题。
我正在解析 IP 地址和一个名为“环境”的标签。实例中的环境标签不存在,因此它不会给我任何结果。
以下是 AWS CLI 返回的相关输出示例
{
"Reservations": [
{
"Instances": [
{
"PrivateIpAddress": "10.0.0.1",
"Tags": [
{
"Key": "Name",
"Value": "Balance-OTA-SS_a"
},
{
"Key": "Environment",
"Value": "alpha"
}
]
}
]
},
{
"Instances": [
{
"PrivateIpAddress": "10.0.0.2",
"Tags": [
{
"Key": "Name",
"Value": "Balance-OTA-SS_a"
}
]
}
]
}
]
}
我正在运行以下命令
aws ec2 describe-instances --filters "Name=tag:Name,Values=Balance-OTA-SS_a" | jq -c '.Reservations[].Instances[] | ({IP: .PrivateIpAddress, Ambiente: (.Tags[]|select(.Key=="Environment")|.Value)})'
## output
empty
即使环境标签不存在,如何在命令输出中显示 IP 地址?
问候,
【问题讨论】:
-
请查看minimal reproducible example 指南。具体来说,如果没有匹配的标签,你想要什么结果?您希望出现“Ambiente”键吗?
-
我的英语不好,我重新提出了我的问题。
-
恕我直言,一个更好的例子是显示示例 JSON 数据,这样就不必获取 aws ec2 数据来回答 JQ 问题。
-
我的答案中包含了示例输入,但是请在根据 AWS 命令的输出询问 jq 问题时包含示例输入,即使其他人获取这样的测试数据也非常不方便确实有一个 AWS 账户,而许多本来可以回答问题的人却没有。
标签: json amazon-web-services jq