

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

# 驗證日誌事件的流動
<a name="ValidateLogEventFlow"></a>

在您建立訂閱篩選條件後，CloudWatch Logs 會將所有符合篩選條件模式的傳入日誌事件，轉送至封裝在稱為 "**RecipientStream**" 的目的地串流中的串流。目的地擁有者可以使用 **aws kinesis get-shard-iterator** 命令來抓取 Amazon Kinesis Data Streams 碎片，並使用 **aws kinesis get-records** 命令來擷取一些 Amazon Kinesis Data Streams 記錄，以確認是否發生這種情況：

```
aws kinesis get-shard-iterator \
      --stream-name RecipientStream \
      --shard-id shardId-000000000000 \
      --shard-iterator-type TRIM_HORIZON

{
    "ShardIterator":
    "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"
}

aws kinesis get-records \
      --limit 10 \
      --shard-iterator
      "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"
```

**注意**  
在 Amazon Kinesis Data Streams 開始傳回資料之前，您可能需要重新執行 get-records 命令幾次。

您應該會看到具有 Amazon Kinesis Data Streams 記錄陣列的回應。Amazon Kinesis Data Streams 記錄中的資料屬性會以 gzip 格式壓縮，然後以 base64 編碼。您可以使用以下 Unix 命令來透過命令列檢查原始資料：

```
echo -n "<Content of Data>" | base64 -d | zcat
```

Base64 解碼和解壓縮資料是以 JSON 形式並以下列結構進行格式化：

```
{
    "owner": "111111111111",
    "logGroup": "CloudTrail/logs",
    "logStream": "111111111111_CloudTrail/logs_us-east-1",
    "subscriptionFilters": [
        "RecipientStream"
    ],
    "messageType": "DATA_MESSAGE",
    "logEvents": [
        {
            "id": "3195310660696698337880902507980421114328961542429EXAMPLE",
            "timestamp": 1432826855000,
            "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"
        },
        {
            "id": "3195310660696698337880902507980421114328961542429EXAMPLE",
            "timestamp": 1432826855000,
            "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"
        },
        {
            "id": "3195310660696698337880902507980421114328961542429EXAMPLE",
            "timestamp": 1432826855000,
            "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"
        }
    ]
}
```

在資料結構的關鍵元素如下：

**owner**  
原始日誌資料 AWS 的帳戶 ID。

**logGroup**  
原始日誌資料的日誌群組名稱。

**logStream**  
原始日誌資料的日誌串流名稱。

**subscriptionFilters**  
與原始日誌資料相符的訂閱篩選條件名稱清單。

**messageType**  
資料訊息使用 "DATA\$1MESSAGE" 類型。有時 CloudWatch Logs 可能會發出 "CONTROL\$1MESSAGE" 類型的 Amazon Kinesis Data Streams 記錄，主要用於檢查目的地是否可連線。

**logEvents**  
實際的日誌資料，以一系列的日誌事件記錄呈現。ID 屬性是每個記錄事件的唯一識別符。