如果存在标签,如何启动 AWS 实例

How to Start AWS instance if it has Tag exists

我想 运行 AWS CLI 命令启动实例,如果它有相关标签存在,例如“MigratedBy”。如果 Tag 不存在,它根本不应该启动实例

我尝试了 运行ning 下面的命令,但没有成功

aws ec2 start-instances --instance-ids `aws ec2 describe-instances --filters "Name=tag:MigratedBy,Values=my-super-tag" --query 'Reservations[].Instances[].InstanceId' --outpu t text` 

似乎此命令会 运行 所有带有标签“MigratedBy”的实例,但在我的情况下这是错误的。如果标签存在,我只想启动特定实例,否则不存在

如果您只想根据标签的存在进行过滤,您可以将其包含在查询中,然后通过管道仅显示 InstanceId:

aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key=='MigratedBy'],InstanceId] | [*][1]' --output text

最后,要启动这些实例,整个命令将是:

aws ec2 start-instances --instance-ids `aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key=='MigratedBy'],InstanceId] | [*][1]' --output text` 

参考:

Filtering AWS CLI output