这是来自awscli的我的JSON输出我想使用Origin DomainName example1.com获取xxxxxxxx.cloudfront.net,仅使用AWS cli查询.{我知道用jq,awk和cut,grep}过滤.
"DistributionList": { "Items": [ { "WebACLId": "", "Origins": { "Items": [ { "OriginPath": "", "CustomOriginConfig": { "OriginProtocolPolicy": "http-only", "HTTPPort": 80, "HTTPSPort": 443 }, "Id": "DNS for Media Delivery", "DomainName": "example1.com" } ], "Quantity": 1 }, "DomainName": "xxxxxxxx.cloudfront.net", }, { "WebACLId": "", "Origins": { "Items": [ { "OriginPath": "", "CustomOriginConfig": { "OriginProtocolPolicy": "http-only", "HTTPPort": 80, "HTTPSPort": 443 }, "Id": "DNS for Media Delivery", "DomainName": "example2.com" } ], "Quantity": 1 }, "DomainName": "yyyyyyyyyy.cloudfront.net", }, ] }
D.Dimitriogl.. 9
由于AWS CLI --query
参数在JMESPath之上工作,因此您可以构建出色的过滤器.您的问题的答案将是:
--query "DistributionList.Items[].{DomainName: DomainName, OriginDomainName: Origins.Items[0].DomainName}[?contains(OriginDomainName, 'example1.com')] | [0]"
它会回报你:
{ "DomainName": "xxxxxxxx.cloudfront.net", "OriginDomainName": "example1.com" }
PS希望它会帮助某人.
由于AWS CLI --query
参数在JMESPath之上工作,因此您可以构建出色的过滤器.您的问题的答案将是:
--query "DistributionList.Items[].{DomainName: DomainName, OriginDomainName: Origins.Items[0].DomainName}[?contains(OriginDomainName, 'example1.com')] | [0]"
它会回报你:
{ "DomainName": "xxxxxxxx.cloudfront.net", "OriginDomainName": "example1.com" }
PS希望它会帮助某人.