列出并筛选您的资源 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

列出并筛选您的资源

您可以使用 Amazon EC2 控制台获取某些类型的资源的列表。您可以使用相应命令或 API 操作获取每种类型的资源的列表。如果您拥有许多资源,可以筛选结果以仅包含或排除符合特定标准的资源。

使用控制台列出并筛选资源

使用控制台列出资源

您可以使用控制台查看最常用的 Amazon EC2 资源类型。要查看其他资源,请使用命令行界面或 API 操作。

要使用控制台列出 EC2 资源

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择与资源类型对应的选项。例如,要列出实例,请选择实例

    该页面显示所选资源类型的所有资源。

使用控制台筛选资源

筛选资源列表

  1. 在导航窗格中,选择资源类型 (例如,Instances)。

  2. 选择搜索字段。

  3. 从列表中选择筛选条件。

  4. 选择筛选条件值。

  5. 完成后,删除筛选条件。

Amazon EC2 控制台之间的搜索和筛选功能略有不同。

新控制台支持两种类型的筛选。

  • API 筛选发生在服务器端。该筛选应用于 API 调用,可减少服务器返回的资源数量。它可以对大型资源集进行快速筛选,并可降低服务器和浏览器之间的数据传输时间和成本。

  • 客户端筛选发生在客户端。它可以对浏览器中现有的数据(也就是 API 已返回的数据)进行筛选。客户端筛选与 API 筛选结合使用,可以在浏览器中筛选出较小的数据集。

新 Amazon EC2 控制台支持以下类型的搜索:

按关键字搜索

按关键字搜索是一种自由文本搜索,可让您在所有资源属性中搜索特定的值,而无需指定要搜索的属性。

注意

所有关键字搜索都使用客户端筛选

要按关键字进行搜索,请在搜索框中输入或粘贴要查找的内容,然后按 Enter。例如,搜索 123 会匹配其任何属性(例如 IP 地址、实例 ID、VPC ID 或 AMI ID)中包含 123 的所有实例。如果自由文本搜索返回不需要的匹配项,请再应用其他筛选条件。

按属性搜索

按属性搜索可让您在所有资源中搜索特定属性。

注意

属性搜索可以使用 API 筛选客户端筛选,具体取决于所选的属性。执行属性搜索时,会相应地对属性进行分组。

例如,您可以搜索所有实例的 Instance state 属性,以便仅返回处于 stopped 状态的实例。要实现此目的,应按照以下步骤进行:

  1. 实例屏幕上的搜索字段中,开始输入 Instance state。输入字符时,实例状态将显示两种类型的筛选条件:API 筛选条件客户端筛选条件

  2. 要在服务器端进行搜索,请在 API 筛选条件下选择 实例状态。要在客户端进行搜索,请在客户端筛选条件下选择实例状态(客户端)

    此时页面上会显示所选属性的可能值列表。

  3. 从列表中选择已停止

您可以使用以下技术来增强或优化搜索:

逆向搜索

反向搜索可让您搜索与指定的值匹配的资源。反向搜索是通过在搜索关键字前面加上感叹号 (!) 字符来执行的。

注意

只有客户端筛选条件上的关键字搜索和属性搜索支持反向搜索。API 筛选条件上的属性搜索不支持它。

例如,您可以搜索所有实例的实例状态属性,以便包含处于 terminated 状态的所有实例。要实现此目的,应按照以下步骤进行:

  1. 实例屏幕上的搜索字段中,开始输入 Instance state。输入字符时,实例状态将显示两种类型的筛选条件:API 筛选条件客户端筛选条件

  2. 选择实例状态(客户端)。只有客户端筛选条件支持反向搜索。

    此时页面上会显示所选属性的可能值列表。

  3. 输入 !(感叹号)来显示反向筛选条件。

  4. 从列表中选择 !已终止

要根据实例状态属性筛选实例,您还可以使用实例状态列中的搜索图标 ( )。带加号 (+) 的搜索图标将显示与该属性匹配的所有实例。带减号 (-) 的搜索图标将排除与该属性匹配的所有实例。

以下是使用反向搜索的另一个示例:要列出分配名为 launch-wizard-1 的安全组的所有实例,请按 Security group name 属性进行搜索,然后输入关键字 !launch-wizard-1

部分搜索

使用部分搜索,可以搜索部分字符串值。要执行部分搜索,请仅输入要搜索的关键字的一部分。例如,要搜索所有 t2.microt2.smallt2.medium 实例,请按 Instance Type 属性进行搜索,然后输入关键字 t2

注意

只有客户端筛选条件上的关键字搜索和属性搜索支持部分搜索。API 筛选条件上的属性搜索不支持它。

正则表达式搜索

要使用正则表达式搜索,必须在“首选项”中启用使用正则表达式匹配

当需要匹配字段中具有特定模式的值时,可以使用正则表达式。例如,要搜索以 s 开头的值,请搜索 ^s。要搜索以 xyz 结尾的值,请搜索 xyz$。或者要搜索以数字开头,后跟一个或多个字符的值,请搜索 [0-9]+.*。正则表达式搜索不区分大小写。

注意

只有客户端筛选条件上的关键字搜索和属性搜索支持正则表达式搜索。API 筛选条件上的属性搜索不支持它。

通配符搜索

使用 * 通配符匹配零个或多个字符。使用 ? 通配符匹配零个或一个字符。例如,如果您的数据集具有以下值:prod、prods 和 production;“prod*”会匹配所有值,而“prod?”仅匹配 prodprods。要使用文字值,请使用反斜杠 (\) 对它们进行转义。例如,“prod\*”将匹配 prod*。

注意

只有 API 筛选条件上的属性搜索支持通配符搜索。客户端筛选条件上的关键字搜索和属性搜索不支持它。

合并搜索

通常,具有相同属性的多个筛选条件会自动以 OR 连接。例如,搜索 Instance State : RunningInstance State : Stopped 会返回正在运行或已停止的所有实例。要使用 AND 连接搜索,请跨不同的属性进行搜索。例如,搜索 Instance State : RunningInstance Type : c4.large 只会返回为 c4.large 且处于停止状态的实例。

旧 Amazon EC2 控制台支持以下类型的搜索:

按关键字搜索

按关键字搜索是一种自由文本搜索,可让您在所有资源属性中搜索特定的值。要按关键字进行搜索,请在搜索框中输入或粘贴要查找的内容,然后按 Enter。例如,搜索 123 会匹配其任何属性(例如 IP 地址、实例 ID、VPC ID 或 AMI ID)中包含 123 的所有实例。如果自由文本搜索返回不需要的匹配项,请再应用其他筛选条件。

按属性搜索

按属性搜索可让您在所有资源中搜索特定属性。例如,您可以搜索所有实例的 State 属性,以便仅返回处于 stopped 状态的实例。要实现此目的,应按照以下步骤进行:

  1. 在“实例”屏幕上的搜索字段中,开始输入 Instance State。随着您的输入,页面上会显示匹配属性的列表。

  2. 从列表中选择 Instance State (实例状态)。此时页面上会显示所选属性的可能值列表。

  3. 从列表中选择 Stopped

您可以使用以下技术来增强或优化搜索:

逆向搜索

反向搜索可让您搜索与指定的值匹配的资源。反向搜索是通过在搜索关键字前面加上感叹号 (!) 字符来执行的。例如,如果要列出所有终止的实例,请按 Instance State 属性进行搜索,然后输入关键字 !Terminated

部分搜索

使用部分搜索,可以搜索部分字符串值。要执行部分搜索,请仅输入要搜索的关键字的一部分。例如,要搜索所有 t2.microt2.smallt2.medium 实例,请按 Instance Type 属性进行搜索,然后输入关键字 t2

正则表达式搜索

当需要匹配字段中具有特定模式的值时,可以使用正则表达式。例如,如果要搜索具有以 s 开头的属性值的所有实例,请搜索 ^s。或者要搜索具有以 xyz 结尾的属性值的所有实例,请搜索 xyz$。正则表达式搜索不区分大小写。

合并搜索

通常,具有相同属性的多个筛选条件会自动以 OR 连接。例如,搜索 Instance State : RunningInstance State : Stopped 会返回正在运行或已停止的所有实例。要使用 AND 连接搜索,请跨不同的属性进行搜索。例如,搜索 Instance State : RunningInstance Type : c4.large 只会返回为 c4.large 且处于停止状态的实例。

使用 CLI 和 API 列出并筛选

每个资源类型都有相应的 CLI 命令和 API 操作,您可用来列出该类型的资源。生成的资源列表可能很长,因此筛选结果以仅包括符合特定条件的资源可能会更快、更有用。

筛选注意事项

  • 您可以在单一请求中指定多个筛选条件和多个筛选条件值。

  • 您可以将通配符与筛选值一同使用。星号 (*) 匹配零个或多个字符,而问号 (?) 匹配零个或一个字符。

  • 筛选值区分大小写。

  • 您的搜索中可包含通配符的字面值;您只需要在字符前用反斜线隔开字符。例如,用 \*amazon\?\\ 值搜索文字字符串 *amazon?\

支持的筛选条件

要查看每个 Amazon EC2 资源支持的筛选条件,请参阅以下文档:

例 示例:指定单个筛选条件

您可以使用 describe-instances 实例列出您的 Amazon EC2 实例。如果没有筛选条件,响应将包含您的所有资源的信息。您可以使用以下命令在输出中仅包含正在运行的实例。

aws ec2 describe-instances --filters Name=instance-state-name,Values=running

要仅列出正在运行的实例的实例 ID,请按如下方式添加 --query 参数。

aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query "Reservations[*].Instances[*].InstanceId" --output text

下面是示例输出。

i-0ef1f57f78d4775a4 i-0626d4edd54f1286d i-04a636d18e83cfacb

例 示例:指定多个筛选条件或筛选条件值

如果指定多个筛选条件或多个筛选条件值,则资源必须与所有筛选条件匹配才能包括在结果中。

您可以使用以下命令列出类型为 m5.largem5d.large 的所有实例。

aws ec2 describe-instances --filters Name=instance-type,Values=m5.large,m5d.large

您可以使用以下命令列出类型为 t2.micro 的所有已停止实例。

aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped Name=instance-type,Values=t2.micro

例 示例:在筛选条件值中使用通配符

如果在使用 describe-snapshots 描述 EBS 快照时将 database 指定为 description 筛选条件的筛选条件值,则该命令将仅返回描述为“database”的快照。

aws ec2 describe-snapshots --filters Name=description,Values=database

* 通配符可与零个或多个字符匹配。如果将 *database* 指定为筛选条件值,则该命令将仅返回其描述包含“database”一词的快照。

aws ec2 describe-snapshots --filters Name=description,Values=*database*

? 通配符完全匹配 1 个字符。如果指定 database? 作为筛选条件值,该命令将仅返回描述为“database”或“database”后跟一个字符的快照。

aws ec2 describe-snapshots --filters Name=description,Values=database?

如果指定 database????,该命令将仅返回其描述为“数据库”后跟最多四个字符的快照。它不包括带有“数据库”后跟五个或更多字符的说明。

aws ec2 describe-snapshots --filters Name=description,Values=database????

例 示例:基于日期进行筛选

使用 Amazon CLI,您可以使用 JMESPath 通过表达式来筛选结果。例如,以下 describe-snapshots 命令显示您的 Amazon 账户在指定日期(由 2020-03-31 表示)之前创建的所有快照的 ID(由 123456789012 表示)。如果未指定所有者,则结果将包括所有公有快照。

aws ec2 describe-snapshots --filters Name=owner-id,Values=123456789012 --query "Snapshots[?(StartTime<='2020-03-31')].[SnapshotId]" --output text

以下命令显示在指定日期范围内创建的所有快照的 ID。

aws ec2 describe-snapshots --filters Name=owner-id,Values=123456789012 --query "Snapshots[?(StartTime>='2019-01-01') && (StartTime<='2019-12-31')].[SnapshotId]" --output text

基于标签进行筛选

有关如何根据资源标签筛选资源列表的示例,请参阅通过命令行使用标签