是否有一个选项,我可以给这个命令,使它通过我所有的配置文件/帐户迭代?
aws ec2 describe-instances --query "Reservations[*].Instances[*].
{PublicIP:PublicIpAddress,Type:InstanceType,Name:Tags[?Key=='Name']|
[0].Value,Status:State.Name}" --filters "Name=instance-state-name,Values=running"
"Name=tag:Name,Values='*'" --output table
我必须在多个帐户中运行这个,我想知道是否有一种方法可以避免编写通过所有配置文件循环的脚本
我找不到任何地方,如果有像——profile allProfiles或——profiles[*]的东西
您需要创建一个简单的脚本,因为aws
cli只适用于单个配置文件。
在bash
中,应该是这样的:
for profile in `aws configure list-profiles`; do aws ec2 describe-instances --profile $profile ;done;
可能有用的是将每个命令的输出附加到同一个文件中,然后将该文件当作单个命令的输出来处理:
outputFile=`mktemp` ; for profile in `aws configure list-profiles`; do aws ec2 describe-instances --profile $profile >> $outputFile ;done; cat $outputFile
对于json,您可能希望在附加到文件之前通过jq
处理命令输出。