我运行了这个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