我如何使用——query标志从输出的json中获得状态值?



我运行了这个awscli命令,并且我试图使用——query:

获取'State'键的值
ws emr describe-step --profile dev --cluster-id j-12345678 --step-id s-12345678abc 

输出:

{
"Step": {
"Status": {
"Timeline": {
"EndDateTime": 123456.632,
"CreationDateTime": 1234566.779,
"StartDateTime": 1623122991201544.588
},
"State": "COMPLETED",
"StateChangeReason": {}
},
"Config": {
"Args": [
"s3-dist-cp",
"--s3Endpoint",
"s3.amazonaws.com",
"--src",
"s3://test-bucket/",
"--dest",
"s3://test-bucket-2"
],
"Jar": "command-runner.jar",
"Properties": {}
},
"Id": "s-123456789",
"ActionOnFailure": "CONTINUE",
"Name": "Command Runner"
}
}

从输出中,我想从'State' Key中提取值。如果可能的话,jq可以代替吗?

我没有EMR来测试,但使用您的示例,这应该可以工作:

aws emr describe-step --profile dev --cluster-id j-12345678 --step-id s-12345678abc --query 'Step.Status.State'

这是一个使用ec2的例子,我知道--query工作:

aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'

要使用jq,您可以这样做:

aws emr describe-step --profile dev --cluster-id j-12345678 --step-id s-12345678abc |jq -r '.Step.Status.State'

引用

CLI Usage Filter

相关内容

  • 没有找到相关文章

最新更新