如何使用AWS CLI查询特定CloudFormation栈的EC2实例?
查询特定CloudFormation栈下的EC2实例信息(AWS CLI方法)
有两种常用的AWS CLI方法可以查询特定CloudFormation栈下的EC2实例:
方法1:直接查询CloudFormation栈的资源列表
使用aws cloudformation describe-stack-resources命令,指定目标栈名并筛选EC2类型的资源:
获取完整EC2资源信息
aws cloudformation describe-stack-resources --stack-name YOUR_STACK_NAME --query "StackResources[?ResourceType=='AWS::EC2::Instance']"
仅获取实例ID(文本格式输出)
aws cloudformation describe-stack-resources --stack-name YOUR_STACK_NAME --query "StackResources[?ResourceType=='AWS::EC2::Instance'].PhysicalResourceId" --output text
这个命令会直接返回栈内所有AWS::EC2::Instance类型的资源详情,无需依赖标签。
方法2:通过EC2实例标签筛选
CloudFormation默认会为创建的资源添加aws:cloudformation:stack-name标签,值为对应栈的名称。利用这个标签可以直接从EC2实例列表中筛选:
获取实例的完整信息
aws ec2 describe-instances --filters "Name=tag:aws:cloudformation:stack-name,Values=YOUR_STACK_NAME"
仅输出实例ID和名称(表格格式)
aws ec2 describe-instances --filters "Name=tag:aws:cloudformation:stack-name,Values=YOUR_STACK_NAME" --query "Reservations[*].Instances[*].[InstanceId, Tags[?Key=='Name'].Value|[0]]" --output table
如果你的模板自定义了额外标签,也可以替换上述命令中的标签键值对来筛选。
内容的提问来源于stack exchange,提问作者CJ Chang
相关产品推荐
相关产品推荐

