

終止支援通知：在 2025 年 12 月 15 日， AWS 將終止對 的支援 AWS IoT Analytics。2025 年 12 月 15 日之後，您將無法再存取 AWS IoT Analytics 主控台或 AWS IoT Analytics 資源。如需詳細資訊，請參閱[AWS IoT Analytics 終止支援](https://docs.aws.amazon.com/iotanalytics/latest/userguide/iotanalytics-end-of-support.html)。

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

# 透過 Amazon CloudWatch Events 取得延遲資料通知
<a name="late-data-notification"></a>

當您使用來自指定時間範圍的資料建立資料集內容時，某些資料可能無法及時送達進行處理。若要允許延遲，您可以在[建立資料集](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_CreateDataset.html)`QueryFilter`時套用 `queryAction`(SQL 查詢） 來指定 的`deltaTime`位移。 AWS IoT Analytics 仍會處理在差異時間內抵達的資料，而且您的資料集內容會有時間延遲。延遲資料通知功能可讓 在資料於差異時間後送達時，透過 [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) AWS IoT Analytics 傳送通知。

您可以使用 AWS IoT Analytics 主控台、[API](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/)、[AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/iotanalytics/index.html) 或 [AWS SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) 來指定資料集的延遲資料規則。

在 AWS IoT Analytics API 中， `LateDataRuleConfiguration` 物件代表資料集的延遲資料規則設定。此物件是與 `CreateDataset`和 `UpdateDataset` API 操作相關聯的`Dataset`物件的一部分。

## 參數
<a name="lateDataRules-parameters"></a>

當您使用 建立資料集的延遲資料規則時 AWS IoT Analytics，您必須指定下列資訊：

**`ruleConfiguration` (`LateDataRuleConfiguration`)**  
包含延遲資料規則組態資訊的結構。    
**`deltaTimeSessionWindowConfiguration`**  
包含差異時間工作階段時段之組態資訊的結構。  
[DeltaTime](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html) 指定時間間隔。您可以使用 `DeltaTime` 建立資料集內容，其中包含自上次執行以來已到達資料存放區的資料。如需 的範例`DeltaTime`，請參閱[使用差異視窗 (CLI) 建立 SQL 資料集](https://docs.aws.amazon.com/iotanalytics/latest/userguide/automate-create-dataset.html#automate-example6)。    
**`timeoutInMinutes`**  
時間間隔。您可以使用 `timeoutInMinutes`讓 AWS IoT Analytics 批次處理自上次執行後產生的延遲資料通知。 AWS IoT Analytics 會一次傳送一批次通知至 CloudWatch Events。  
類型：整數  
有效範圍：1-60

**`ruleName`**  
延遲資料規則的名稱。  
類型：字串

**重要**  
若要指定 `lateDataRules`，資料集必須使用`DeltaTime`篩選條件。

## 設定延遲資料規則 （主控台）
<a name="config-late-data-rules-console"></a>

下列程序說明如何在 AWS IoT Analytics 主控台中設定資料集的延遲資料規則。

**設定延遲資料規則**

1. 登入 [AWS IoT Analytics 主控台](https://console.aws.amazon.com/iotanalytics/)。

1. 在導覽窗格中，選擇**資料集**。

1. 在**資料集**下，選擇目標資料集。

1. 在導覽窗格中，選擇**詳細資訊**。

1. 在 **Delta 視窗**區段中，選擇**編輯**。

1. 在**設定資料選取篩選條件**下，執行下列動作：

   1. 針對**資料選擇視窗**，選擇 **Delta 時間**。

   1. 針對**位移**，輸入時段，然後選擇單位。

   1. 針對**時間戳記表達**式，輸入表達式。這可以是時間戳記欄位的名稱或可衍生時間的 SQL 表達式，例如 *from\$1unixtime(time)*。

      如需如何撰寫時間戳記表達式的詳細資訊，請參閱 *Presto 0.172 文件*中的[日期和時間函數和運算子](https://prestodb.io/docs/0.172/functions/datetime.html)。

   1. 針對**延遲資料通知**，選擇**作用中**。

   1. 針對 **Delta 時間**，輸入整數。有效範圍為 1-60。

   1. 選擇**儲存**。  
![\[在 AWS IoT Analytics 主控台中設定資料選擇篩選條件。\]](http://docs.aws.amazon.com/zh_tw/iotanalytics/latest/userguide/images/late-data-notification-1.png)

## 設定延遲資料規則 (CLI)
<a name="config-late-data-rules-cli"></a>

在 AWS IoT Analytics API 中， `LateDataRuleConfiguration` 物件代表資料集的延遲資料規則設定。此物件是與 `CreateDataset`和 相關聯的`Dataset`物件的一部分`UpdateDataset`。您可以使用 [API](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/)[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotanalytics/index.html)、 或 [AWS SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) 來指定資料集的延遲資料規則。下列為使用 AWS CLI的範例。

若要使用指定的延遲資料規則建立資料集，請執行下列命令。命令假設`dataset.json`檔案位於目前的目錄中。

**注意**  
您可以使用 [UpdateDataset](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_UpdateDataset.html) API 來更新現有的資料集。

```
aws iotanalytics create-dataset --cli-input-json file://dataset.json
```

`dataset.json` 檔案應包含下列項目：
+ 將 *demo\$1dataset* 取代為目標資料集名稱。
+ 將 *demo\$1datastore* 取代為目標資料存放區名稱。
+ 將 *from\$1unixtime(time)* 取代為時間戳記欄位的名稱或可衍生時間的 SQL 表達式。

  如需如何撰寫時間戳記表達式的詳細資訊，請參閱 *Presto 0.172 文件*中的[日期和時間函數和運算子](https://prestodb.io/docs/0.172/functions/datetime.html)。
+ 將*逾時*取代為介於 1–60 之間的整數。
+ 以任何名稱取代 *demo\$1rule*。

```
{
    "datasetName": "demo_dataset",
    "actions": [
        {
            "actionName": "myDatasetAction",
            "queryAction": {
                "filters": [
                    {
                        "deltaTime": {
                            "offsetSeconds": -180,
                            "timeExpression": "from_unixtime(time)"
                        }
                    }
                ],
                "sqlQuery": "SELECT * FROM demo_datastore"
            }
        }
    ],
    "retentionPeriod": {
        "unlimited": false,
        "numberOfDays": 90
    },
    "lateDataRules": [
        {
            "ruleConfiguration": {
                "deltaTimeSessionWindowConfiguration": {
                    "timeoutInMinutes": timeout
                }
            },
            "ruleName": "demo_rule"
        }
    ]
}
```

## 訂閱以接收延遲資料通知
<a name="subscribe-eventbridge"></a>

您可以在 CloudWatch Events 中建立規則，以定義如何處理從 傳送的延遲資料通知 AWS IoT Analytics。當 CloudWatch Events 收到通知時，它會叫用規則中定義的指定目標動作。

### 建立 CloudWatch Events 規則的先決條件
<a name="cwe-rule-prereq"></a>

為 建立 CloudWatch Events 規則之前 AWS IoT Analytics，您應該執行下列動作：
+ 熟悉 CloudWatch Events 中的事件、規則和目標。
+ 建立和設定 CloudWatch Events 規則調用[的目標](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-targets.html)。規則可以叫用許多類型的目標，例如：
  +  Amazon Kinesis Streams
  + AWS Lambda 函數
  + Amazon Simple Notification Service (Amazon SNS) 主題
  + Amazon Simple Queue Service (Amazon SQS) 佇列

  您的 CloudWatch Events 規則和相關聯的目標必須位於您建立 AWS IoT Analytics 資源的 AWS 區域中。如需詳細資訊，請參閱《AWS 一般參考》**中的[服務端點和配額](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)。

如需詳細資訊，請參閱《Amazon [ CloudWatch Events 使用者指南》中的什麼是 CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)*和 Amazon CloudWatch Events *入門。 [ Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_GettingStarted.html) 

### 延遲資料通知事件
<a name="late-data-notification-event"></a>

延遲資料通知的事件使用以下格式。

```
{
	"version": "0",
	"id": "7f51dfa7-ffef-97a5-c625-abddbac5eadd",
	"detail-type": "IoT Analytics Dataset Lifecycle Notification",
	"source": "aws.iotanalytics",
	"account": "123456789012",
	"time": "2020-05-14T02:38:46Z",
	"region": "us-east-2",
	"resources": ["arn:aws:iotanalytics:us-east-2:123456789012:dataset/demo_dataset"],
	"detail": {
		"event-detail-version": "1.0",
		"dataset-name": "demo_dataset",
		"late-data-rule-name": "demo_rule",
		"version-ids": ["78244852-8737-4650-aa4d-3071a01338fa"],
		"message": null
	}
}
```

### 建立 CloudWatch Events 規則以接收延遲資料通知
<a name="create-cwe-rule-console"></a>

下列程序說明如何建立將 AWS IoT Analytics 延遲資料通知傳送至 Amazon SQS 佇列的規則。

**建立 CloudWatch Events 規則**

1. 登入 [Amazon CloudWatch 主控台](https://console.aws.amazon.com/cloudwatch/)。

1. 在導覽窗格的 **Events** (事件) 下，選擇 **Rules** (規則)。

1. 在**規則**頁面上，選擇**建立規則**。

1. 在**事件來源**下，選擇**事件模式**。

1. 在依**服務比對事件的建置事件模式中**，執行下列動作：

   1. 針對**服務名稱**，選擇 **IoT Analytics**

   1. 針對**事件類型**，選擇 **IoT Analytics 資料集生命週期通知**。

   1. 選擇**特定資料集名稱 （多個）**，然後輸入目標資料集的名稱。

1. 在**目標**下，選擇**新增目標\$1**。

1. 選擇 **SQS 佇列**，然後執行下列動作：

   1. 針對**佇列\$1**，選擇目標佇列。

1. 選擇**設定詳細資訊**。

1. 在**步驟 2：設定規則詳細資訊**頁面上，輸入名稱和描述。

1. 選擇**建立規則**。