如何列出多个账户(配置文件)的所有 EC2 实例
How to list all EC2 instances of multiple accounts (profiles)
我可以给这个命令一个选项,让它遍历我所有的 profiles/accounts 吗?
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
输出的命令。
我可以给这个命令一个选项,让它遍历我所有的 profiles/accounts 吗?
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
输出的命令。