Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
384 views
in Technique[技术] by (71.8m points)

amazon web services - Combining AWS cli commands with xargs not working

I want to have a one liner for setting properties to AWS Cloudwatch loggroups. I came across the xargs command. But I do not understand what am I doing wrong:

aws logs describe-log-groups 
--query "logGroups[*].logGroupName" 
--output text  
| xargs -I {} -n 1 
 aws logs put-retention-policy 
--log-group-name {} 
--retention-in-days 14

As far as I understood {} takes the first command's output as list and pipes each element to the second command via xargs.

However, I result in this:

An error occurred (InvalidParameterException) when calling the PutRetentionPolicy operation: Member must have length less than or equal to 512

I am assuming that it passed the list to xargs, not just one element of the first command's output.


I am using Windows 10 with git bash

question from:https://stackoverflow.com/questions/65874236/combining-aws-cli-commands-with-xargs-not-working

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
aws logs describe-log-groups | 
 jq ".logGroups[].logGroupName" 
 |xargs -I {} -n 1  aws logs put-retention-policy 
  --log-group-name {} --retention-in-days 14
aws logs describe-log-groups 
--query "logGroups[].logGroupName" 
--output text 
| xargs -I {} -n 1 
 aws logs put-retention-policy 
--log-group-name {} 
--retention-in-days 14

OS : Mac OSX


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...