

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

當您使用 或 API 建立查詢時，在查詢`SOURCE`中包含 是指定要包含在查詢中的日誌群組和/ AWS CLI 或資料來源的實用方式。`SOURCE` 命令僅在 AWS CLI 和 API 中受支援，在 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(accountIdentifier:['111122223333'])
```

下一個範例會根據名稱字首選取日誌群組。

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

下列範例會選取不常存取日誌類別中的所有日誌群組。如果您未包含識別`class`符，查詢只會套用至標準日誌類別中的日誌群組，這是預設值。

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

下一個範例會選取 111122223333 帳戶中以特定名稱字首開頭且位於標準日誌類別的日誌群組。命令中未提及 類別，因為 Standard 是預設的日誌類別值。

```
SOURCE logGroups(accountIdentifier:['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'])
```

**依標籤查詢日誌群組**

若要使用 `SOURCE` 依標籤篩選日誌群組，請使用 `logGroupTags`函數。將標籤指定為標籤篩選條件清單，每個都有 `key`和選用`values`陣列。
+ 具有不同索引鍵的多個標籤篩選條件會與 AND 邏輯結合。
+ 相同標籤篩選條件中的多個值會與 OR 邏輯結合。
+ 使用 `*` 進行萬用字元比對。例如， `payment*`符合以 開頭的值`payment`。
+ 使用 `!`做為否定的字首。例如， `!production`符合非 的值`production`。
+ 您可以包含最多五個標籤篩選條件，每個最多五個值。

下列範例會選取標記 的所有日誌群組`team=team1 OR team=team2`。

```
SOURCE logGroupTags([{"key":"team", "values":["team1", "team2"]}])
| fields @message, @timestamp
```

下一個範例會選取`service`標籤開頭為 `payment`且`environment`標籤不是 的日誌群組`production`。

```
SOURCE logGroupTags([{"key":"service", "values":["payment*"]}, {"key":"environment", "values":["!production"]}])
| fields @message, @timestamp
```

下列範例結合了標籤篩選和名稱字首篩選條件。

```
SOURCE logGroups(namePrefix: ['/aws/lambda']) logGroupTags([{"key":"environment", "values":["production"]}])
| fields @message, @timestamp
```