我可以列出所有机器:
aws ec2 describe-instances --filters "Name=tag:Env,Values=my_super_tag"--query 'Reservations[].Instances[].[InstanceId]' --输出文本
然后我希望启动所有找到的机器 - aws cli 表达式允许吗?
解决方法是对接收到的输出(机器 ID)应用下一个 aws cli 命令,但这里我也遇到了问题:
$ aws ec2 describe-instances --filters "Name=tag:Env,Values=my_super_tag" --query 'Reservations[].Instances[].[InstanceId]' --output text\
| xargs -L1 aws ec2 start-instances --instance-ids
' does not existd (InvalidInstanceID.NotFound) when calling the StartInstances operation: The instance ID 'i-12345677890
xargs: aws: exited with status 255; aborting
奇怪因为有 echo
aws ec2 describe-instances --filters "Name=tag:Env,Values=spt1"--query 'Reservations[].Instances[].[InstanceId]' --输出文本 | xargs -L 1 echo aws ec2 start-instances --instance-ids
我得到输出(按预期执行以下行之一)
aws ec2 start-instances --instance-ids i-2123456789
aws ec2 start-instances --instance-ids i-3123456789
aws ec2 start-instances --instance-ids i-4123456789
aws ec2 start-instances --instance-ids i-5123456789
最佳答案
您可以将一个命令嵌入到另一个命令中,例如:
aws ec2 start-instances --instance-ids `ANOTHER-COMMAND`
那么,试试这个:
aws ec2 start-instances --instance-ids `aws ec2 describe-instances --filters "Name=tag:Env,Values=my_super_tag" --query 'Reservations[].Instances[].InstanceId' --output text`
关于bash - AWS 客户端 : how to start all machines found by tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580472/