

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SOURCE
<a name="CWL_QuerySyntax-Source"></a>

`SOURCE`在使用 AWS CLI 或 API 创建查询时，在查询中包含是指定要包含在查询中的日志组 and/or 数据源的有用方法。只有 AWS CLI 和 API 支持该`SOURCE`命令， CloudWatch 控制台不支持该命令。使用 CloudWatch控制台启动查询时，您可以使用控制台界面来指定日志组。

查询日志组

要使用 `SOURCE` 指定要查询的日志组，可以使用以下关键字：
+ `namePrefix` 会针对名称以您指定的字符串开头的日志组运行查询。如果省略它，则会查询所有日志组。

  列表中最多可以包含五个前缀。
+ `accountIdentifier`对指定 AWS 账户中的日志组运行查询。仅当您在监控账户中运行查询时，这才有效。如果省略此项，则默认为查询所有关联的源账户和当前的监控账户。有关跨账户可观察性的更多信息，请参阅[CloudWatch 跨](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)账户可观察性。

  列表中最多可以包含 20 个账户标识符。
+ `logGroupClass` 会针对指定日志类（标准或不频繁访问）中的日志组运行查询。如果省略此项，则默认使用标准日志类。有关日志类的更多信息，请参阅 [日志类](CloudWatch_Logs_Log_Classes.md)。

由于您可以通过这种方式指定大量日志组进行查询，因此我们建议您仅在利用已创建的字段索引的查询中使用 `SOURCE`。有关为日志组中的字段编制索引的更多信息，请参阅[创建字段索引以提高查询性能并减少扫描量](CloudWatchLogs-Field-Indexing.md)

以下示例选择了账户中的所有日志组。如果这是一个监控账户，则会选择监控账户及其所有源账户中的所有日志组。如果日志组总数超过 10,000 个，则会显示一条错误消息，提示您使用其他日志组选择方法来减少日志组的数量。

```
SOURCE logGroups()
```

以下示例选择了 `111122223333` 源账户中的日志组。如果您在 CloudWatch 跨账户可观察性的监控账户中启动查询，则默认情况下会选择所有源账户和监控账户中的日志组。

```
SOURCE logGroups(accountIdentifiers:['111122223333'])
```

下一个示例根据名称前缀选择日志组。

```
SOURCE logGroups(namePrefix: ['namePrefix1', 'namePrefix2'])
```

以下示例选择了不频繁访问日志类中的所有日志组。如果不包含 `class` 标识符，则默认情况下，查询仅适用于标准日志类中的日志组。

```
SOURCE logGroups(class: ['INFREQUENT_ACCESS'])
```

下一个示例选择 111122223333 账户中以特定名称前缀开头且属于标准日志类的日志组。命令中未提及日志类，因为“标准”是默认的日志类值。

```
SOURCE logGroups(accountIdentifiers:['111122223333'], namePrefix: ['namePrefix1', 'namePrefix2']
```

最后一个示例显示了如何在`SOURCE`命令中使用该`start-query` AWS CLI 命令。

```
aws logs start-query 
--region us-east-1 
--start-time 1729728200 
--end-time 1729728215 
--query-string "SOURCE logGroups(namePrefix: ['Query']) | fields @message | limit 5"
```

查询数据来源

`SOURCE`要用于指定要查询的数据源，可以使用`dataSource`关键字。列表中最多可以包含十个数据源。

 以下示例选择`amazon_vpc.flow`数据源。

```
SOURCE dataSource(['amazon_vpc.flow'])
```

 以下示例选择`amazon_vpc.flow`数据源并根据日志组名称前缀限制日志组。

```
SOURCE dataSource(['amazon_vpc.flow']) logGroups(namePrefix: ['namePrefix1'])
```