列出并筛选您的资源 - Amazon Elastic Compute Cloud

列出并筛选您的资源

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

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

使用控制台列出资源

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

要使用控制台列出 EC2 资源
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

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

使用控制台筛选资源

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

  2. 选择搜索字段。

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

  4. 选择运算符,例如 =(等于)。某些属性具有更多可供选择的运算符。请注意,并非所有页面都支持选择运算符。

  5. 选择筛选条件值。

  6. 要编辑选定的筛选条件,请选择过滤条件令牌(蓝色框),进行所需的编辑,然后选择 Apply(应用)。请注意,并非所有页面都支持编辑选定的筛选条件。

    编辑筛选条件。
  7. 完成后,删除筛选条件。

支持的筛选条件

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

  • API 筛选发生在服务器端。该筛选应用于 API 调用,可减少服务器返回的资源数量。它可以对大型资源集进行快速筛选,并可降低服务器和浏览器之间的数据传输时间和成本。API 筛选支持 =(等于)和 :(包含)运算符,并且始终区分大小写。

  • 客户端筛选发生在客户端。它可以对浏览器中现有的数据(也就是 API 已返回的数据)进行筛选。客户端筛选与 API 筛选结合使用,可以在浏览器中筛选出较小的数据集。除 =(等于)和 :(包含)运算符外,客户端筛选还可以支持范围运算符 [例如 >=(大于等于)] 和否定(反向)运算符 [例如 !=(不等于)]。

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

按关键字搜索

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

注意

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

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

按属性搜索

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

注意

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

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

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

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

    这时会显示所选属性的可能运算符列表。

  3. 选择 =(等于)运算符。

    这时会显示所选属性和运算符的可能值列表。

  4. 从列表中选择已停止

按标签搜索

借助按标签搜索功能,您可以按标签键或标签值来筛选当前显示的表中的资源。

标签搜索使用 API 筛选客户端筛选方式,具体取决于 Preferences(首选项)窗口中的设置。

确保对标签执行 API 筛选
  1. 打开 Preferences(首选项)窗口。

  2. 清除 Use regular expression matching(使用正则表达式匹配)复选框。如果选中此复选框,则将执行客户端筛选。

  3. 选择 Use case sensitive matching(使用区分大小写的匹配)复选框。如果清除了此复选框,则将执行客户端筛选。

  4. 选择确认

按标签搜索时,您可以使用以下值:

  • (空) – 查找具有指定标签键,但必须不具有标签值的所有资源。

  • All values(所有值)– 查找具有指定标签键和任何标签值的所有资源。

  • Not tagged(未添加标签)– 搜索不具有指定标签键的所有资源。

  • 显示的值 – 查找具有指定标签键和指定标签值的所有资源。

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

逆向搜索

反向搜索可让您搜索与指定的值匹配的资源。在 Instances(实例)和 AMI 屏幕中,反向搜索的方法是首先选择 !=(不等于)或 !:(不包含)运算符,然后选择一个值。在其他屏幕中,反向搜索可通过在搜索关键词前加上感叹号(!)字符来执行。

注意

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

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

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

  2. Client filters(客户端筛选条件)下,选择 Instance state (client) [实例状态(客户端)]。只有客户端筛选条件支持反向搜索。

    这时会显示所选属性的可能运算符列表。

  3. 选择 !=(不等于),然后选择 terminated(已终止)。

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

以下是使用反向搜索的另一个示例:要列出分配名为 launch-wizard-1 的安全组的所有实例,则在 Client filters(客户端筛选条件)下,按 Security group name(安全组名称)属性进行搜索,然后选择 != 并在搜索栏中输入 launch-wizard-1

部分搜索

使用部分搜索,可以搜索部分字符串值。要执行部分搜索,请仅输入要搜索的关键字的一部分。在 Instances(实例)和 AMI 屏幕中,部分搜索只能通过 :(包含)运算符来执行。在其他屏幕中,您可以选择该客户端筛选条件属性,然后立即仅输入要搜索的关键词的一部分。例如,在 Instance type(实例类型)屏幕上,要搜索所有 t2.microt2.smallt2.medium 实例,则按 Instance Type(实例类型)属性进行搜索,然后输入关键词 t2

正则表达式搜索

要使用正则表达式搜索,必须在 Preferences(首选项)中选中 Use regular expression matching(使用正则表达式匹配)复选框。

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

注意

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

区分大小写搜索

要使用区分大小写搜索功能,必须在 Preferences(首选项)窗口中选择 Use case sensitive matching(使用区分大小写的匹配)复选框。区分大小写的首选项仅适用于客户端筛选条件和标签筛选条件。

注意

API 筛选条件始终区分大小写。

通配符搜索

使用 * 通配符匹配零个或多个字符。使用 ? 通配符匹配零个或一个字符。例如,假设您有一个包含值 prodprods、和 production 的数据集,搜索 prod* 将会匹配所有值,而 prod? 只匹配 prodprods。要使用文字值,请使用反斜杠(\)进行转义。例如,“prod\*”将匹配 prod*

注意

仅 API 筛选条件上的属性和标签搜索支持通配符搜索。客户端筛选条件上的关键词搜索以及属性和标签搜索不支持通配符。

合并搜索

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

使用 CLI 和 API 列出并筛选

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

筛选注意事项
  • 在单个请求中,您最多可以指定 50 个筛选条件,以及为每个筛选条件最多指定 200 个值。

  • 筛选条件字符串的长度最多为 255 个字符。

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

  • 筛选值区分大小写。

  • 您的搜索中可包含通配符的字面值;您只需要在字符前用反斜线隔开字符。例如,用 \*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????
例 示例:基于日期进行筛选

使用 AWS CLI,您可以使用 JMESPath 通过表达式来筛选结果。例如,以下 describe-snapshots 命令会显示 AWS 账户 在指定日期(由 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
基于标签进行筛选

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

使用 Amazon EC2 全局视图查看跨区域的资源

通过 Amazon EC2 全局视图,您可以在单个控制台中跨单个 AWS 区域或跨多个区域同时查看和搜索 Amazon EC2 和 Amazon VPC 资源。有关更多信息,请参阅Amazon EC2 全局视图