本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
资源管理器的搜索查询语法参考
AWS 资源探索器 可帮助您在自己的 AWS 资源中找到个人资源 AWS 账户。为了帮助您找到所需的确切资源,资源管理器接受支持本主题所述语法的搜索查询字符串。有关演示如何使用此处所述功能的示例查询,请参阅 资源管理器搜索查询示例 。
注意
目前,附加到 AWS Identity and Access Management (IAM) 资源(例如角色或用户)的标签未编制索引。
查询在资源管理器中的工作原理
搜索查询始终使用视图。如果您没有明确指定一个视图,则资源管理器将使用您正在 AWS 区域 使用的默认视图。
视图决定哪些资源可供您查询。您可以创建不同的视图,每个视图都返回一组不同的资源。
例如,您可以创建一个仅包含用键
Environment
和值
Production
标记的资源的视图。然后,您可以选择仅向有业务理由查看这些资源的用户授予该视图的访问权限。包含
Alpha
或
Beta
环境资源的单独视图可由需要查看这些资源的不同用户访问。有关控制谁有权访问哪些视图的信息,请参阅
授予对资源管理器视图的访问权限以进行搜索
。
查询字符串语法
本部分提供有关查询语法、筛选条件和筛选运算符的基本方面的信息。
最基本的是,
QueryString
是一组由逻辑
OR
运算符
隐式
连接的自由格式文本关键字。使用空格将每个关键字与其他关键字分开,如下例所示:
ec2 billing test gamma
资源管理器评估此关键字列表:
ec2
OR
billing
OR
test
OR
gamma
资源管理器按相关性对结果进行排序,优先考虑与更多搜索词匹配的资源。与一个或多个术语不匹配的资源不会排除在结果之外。但是,资源管理器认为它们的相关性较低,并在搜索结果中将其进一步向下推送。
如果您为
QueryString
参数指定一个空字符串,则您的查询通过用于操作的视图返回可用的前 1000 个资源。任何查询可返回的最大资源数为 1000。
注意
AWS 保留更新用于评估自由格式文本关键字的匹配逻辑和相关性算法的权利,以便我们可以为客户提供最相关的结果。因此,使用自由文本关键字的相同查询返回的结果可能会随着时间的推移而发生变化。如果您需要更确切的结果,则建议您使用筛选条件。筛选条件匹配逻辑不会随着时间的推移而改变。
您可以通过添加 筛选条件 来更严格地限制查询结果。与文本关键字不同的是,筛选条件在查询中使用 AND 运算符进行评估。例如,考虑以下由两个自由格式关键字和两个筛选条件组成的查询:
test instance service:EC2 region:us-west-2
此查询的估算方式如下:
( test OR instance ) AND service:EC2 AND region:us-west-2
筛选条件器始终使用 AND 逻辑运算符进行评估。如果某个资源与筛选条件不匹配,则该资源不会包含在结果中。示例查询的结果包括与 Amazon EC2 关联且位于美国西部(俄勒冈州) AWS 区域 且至少以某种方式附加了其中一个关键词的所有资源。
注意
由于隐式
AND
,您可以成功地对只能有一个与资源关联的值的属性使用一个筛选条件。例如,一个资源只能是一个 AWS 区域 的一部分。因此,以下查询将不返回结果。
region:us-east-1 region:us-west-1
此限制
不
适用于可以同时拥有多个值的属性的筛选条件,例如
tag:
、
tag.key:
和
tag.value:
。
下表列出了可在资源管理器搜索查询中使用的可用筛选条件名称。
筛选条件名称 说明和示例
此筛选条件使您能够搜索带有
awsApplication
标签键和资源组值的资源。您可以按应用程序名称或应用程序资源组 ARN 进行搜索。
application:MyApplicationName
arn:aws:resource-groups:
us-east-1
:123456789012:group/MyApplicationName
注意
要使用此筛选条件,您的视图必须有权访问标记数据。
用双引号字符(
"
"
)将应视为单个关键字的多字短语括起来。资源管理器仅包含与整个短语匹配、所有单词合在一起且按指定顺序排列的资源。
如果您不使用双引号,资源管理器会通过空格或连字符将短语分解为各组成部分,并包含与各个组成部分匹配的资源,即使它们不在一起或顺序不同。报价应该在操作员之后的所有内容周围。
"This matches only resources with the whole
sentence."
This matches resources with any of the
words.
"us-east-1"
– 仅匹配与该确切区域关联的资源。
us-east-1
– 匹配任何包含“us”、“east”或“1”的资源。
-tag:"enviornment=production"
前缀通配符匹配。您只能在字符串的末尾放置通配符(星号
*
)。资源管理器仅在结果中包含值在
*
前以前缀文本开头的资源。以下示例匹配所有 AWS 区域 以开头的内容
us-east
。
region:us-east*
重要
统一搜索会自动在字符串中第一个关键字的末尾插入通配符(
*
)运算符。这意味着统一的搜索结果包括与任何以指定关键字开头的字符串相匹配的资源。
通过
查询
文本框,在资源管理器控制台的
资源搜索
*
。
Not
运算符。您可以在其关键字或筛选条件的开头放置连字符(
-
),以反转搜索结果。资源管理器会从结果中
排除
与该运算符后面的关键字或筛选条件匹配的任何资源。以下示例会将与 Amazon EC2 服务关联的所有资源排除在结果之外。
-service:ec2
重要
如果您使用 AWS CLI
search
命令并且您的
--query-string
参数值将
-
运算符作为第一个字符,则必须使用等号字符 (
=
) 而不是通常的空格字符将参数名称与其值分开。如果您使用空格字符,则 CLI 会误解该字符串。例如,下面的查询将失败。
aws resource-explorer-2 search --query-string "-tag:none region:us-east-1"
以下经过更正的查询字符串用
=
替换了空格,将按预期工作。
aws resource-explorer-2 search --query-string
=
"-tag:none region:us-east-1"
如果您更改查询字符串中筛选条件的顺序,使
-
不作为参数值中的第一个字符,则可以使用标准空格字符。以下查询字符串有效。
aws resource-explorer-2 search --query-string "region:us-east-1 -tag:none"
\
<special
character>
您可以对特殊字符进行转义,这些特殊字符必须完全按照显示的内容包含,而不是对其进行解释。如果您的文本包含其中一个特殊字符(
* " - : = \
),您必须在该字符前面加上反斜杠(
\
),以确保该字符是按字面意思理解的。以下示例说明如何使用包含连字符(
-
)字符(
"my-key-word"
)的自由格式文本关键字。
此外,为防止资源管理器将连字符处的表达式分解为三个单独的关键字,可以用双引号将整个短语括起来。
"my\-key\-word"
要插入字面反斜杠,请连续插入两个反斜杠字符。第一个反斜杠被解释为转义符,第二个反斜杠是要插入的字面字符。
"some_text\\some_more_text"
注意
如果视图包含附加到资源的标签,则
Search
操作不会引发搜索字符串的验证错误,因为无效的筛选条件也可能被解释为自由格式的文本搜索。例如,尽管
cat:blue
看起来
像一个筛选条件,但资源管理器不能将其解析为筛选条件,因为
cat:
不是有效的已定义筛选条件之一。取而代之的是,资源管理器将整个字符串解释为自由格式的搜索字符串,以允许它匹配标签键名称或 ARN 的一部分等。
如果满足以下任一条件,操作将引发验证错误:
该视图不包含有关标签的信息