透過 Amazon CloudWatch 活動取得延遲資料通知 - AWS IoT Analytics

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

透過 Amazon CloudWatch 活動取得延遲資料通知

使用指定時間範圍中的資料建立資料集內容時,部分資料可能無法及時送達處理。若要允許延遲,您可以套用queryAction (SQL 查詢) 來指定建立資料集QueryFilter時的deltaTime偏移量。 AWS IoT Analytics仍會處理在增量時間內到達的資料,而您的資料集內容有時間延遲。延遲資料通知功能可讓您AWS IoT Analytics在資料超過差異時間後到達時,透過 Amazon E CloudWatch vents 傳送通知。

您可以使用AWS IoT Analytics主控台、APIAWS Command Line Interface(AWS CLI)AWSSDK 來指定資料集的後期資料規則。

在AWS IoT Analytics API 中,LateDataRuleConfiguration物件代表資料集的後期資料規則設定。此物件是與CreateDatasetUpdateDataset API 作業相關聯之Dataset物件的一部分。

參數

當您為資料集建立延遲資料規則時AWS IoT Analytics,請務必指定下列資訊:

ruleConfiguration (LateDataRuleConfiguration)

包含延遲資料規則之組態資訊的結構。

deltaTimeSessionWindowConfiguration

包含差異時間工作階段時段之組態資訊的結構。

DeltaTime 指定時間間隔。您可以使用 DeltaTime 建立資料集內容,其中包含自上次執行以來已到達資料存放區的資料。如需範例DeltaTime,請參閱使用差異時段 (CLI) 建立 SQL 資料集

timeoutInMinutes

時間間隔。您可以使用,AWS IoT Analytics以timeoutInMinutes便可以批次處理自上次執行以來產生的延遲資料通知。 AWS IoT Analytics同時傳送一批通知給 E CloudWatch vents。

類型:整數

有效範圍:1-60

ruleName

延遲資料規則的名稱。

類型:字串

重要

若要指定lateDataRules,資料集必須使用DeltaTime篩選條件。

設定延遲資料規則 (主控台)

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

若要設定延遲資料規則
  1. 登入 AWS IoT Analytics 主控台

  2. 在導覽窗格中,選擇資料集

  3. 在 [資料集] 下,選擇目標資料集。

  4. 在導覽窗格中,選擇詳細資訊

  5. 在「差異」視窗區段中,選擇 「編輯」。

  6. 設定資料選取篩選條件之下,執行下列操作:

    1. 在「資料選取」視窗中,選擇差異時間

    2. 在「偏移」 中,輸入時間週期,然後選擇一個單位。

    3. 在時間戳記表示式中,輸入表示式。這可以是時間戳記欄位的名稱,或可導出時間的 SQL 運算式,例如 from_unixtime (時間)

      如需如何編寫時間戳記表達式的更多資訊,請參閱《Presto 0.172 文件》中的日期和時間函數和運算子

    4. 對於延遲資料通知,請選擇作用中

    5. 對於差值時間,輸入整數。有效範圍為 1-60。

    6. 選擇 儲存

    
      在主控台中設定資料選取篩選AWS IoT Analytics器。

設定延遲資料規則 (CLI)

在AWS IoT Analytics API 中,LateDataRuleConfiguration物件代表資料集的後期資料規則設定。此物件是與和相關聯之Dataset物件的一部CreateDatasetUpdateDataset。您可以使用 API AWS CLI、或 AWSSDK 來指定資料集的後期資料規則。下列為使用 AWS CLI 的範例。

若要建立具有指定延遲資料規則的資料集,請執行下列命令。此命令會假設dataset.json檔案位於目前的目錄。

注意

您可以使用 UpdateDatasetAPI 更新現有資料集。

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

dataset.json檔案應包含以下內容:

  • 以目標資料集名稱取代 demo_ dataset。

  • 演示資料存放區取代為目標資料存放區名稱。

  • 時間戳記欄位的名稱,或可導出時間的 SQL 運算式,以導出時間。

    如需如何編寫時間戳記表達式的更多資訊,請參閱《Presto 0.172 文件》中的日期和時間函數和運算子

  • 用 1-60 之間的整數替換超時

  • 用任何名稱替換演示規則

{ "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" } ] }

訂閱接收延遲資料通知

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

建立 CloudWatch 事件規則的先決條件

在您為其建立 E CloudWatch vents 規則之前AWS IoT Analytics,請執行下列操作:

  • 熟悉 Events 中 CloudWatch 的事件、規則和目標。

  • 建立和設定 CloudWatch 事件規則呼叫的目標。規則可以叫用許多類型的目標,例如以下類型:

    • Amazon Kinesis Streams

    • AWS Lambda 函式

    • Amazon Simple Notification Service (Amazon SNS) 主題

    • Amazon Simple Queue Service (Amazon SQS) 佇列

    您的 CloudWatch 事件規則和相關聯的目標必須位於您建立AWS IoT Analytics資源的「AWS區域」中。如需詳細資訊,請參閱《AWS 一般參考》中的服務端點和配額

如需詳細資訊,請參閱什麼是 E CloudWatch vents?在亞馬遜 CloudWatch 活動用戶指南中開始使用亞馬遜 CloudWatch 活動

延遲資料通知事件

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

{ "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 事件規則以接收延遲資料通知

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

建立 E CloudWatch vents 規則
  1. 登錄到亞馬遜 CloudWatch控制台

  2. 在導覽窗格的 Events (事件) 下,選擇 Rules (規則)。

  3. 在 [規則] 頁面上,選擇 [建立規則]。

  4. 在「事件來源」下選擇「事件模式」。

  5. 在 [建立依服務比對事件的事件模式] 區段中,執行下列動作:

    1. 針對「服務名稱」,選擇 IoT Analytics

    2. 對於事件類型,請選擇 IoT Analytics 資料集生命週期通知

    3. 選擇 [特定資料集名稱],然後輸入目標資料集的名稱。

  6. 在「目標」下,選擇「新增目標 *」。

  7. 選擇 SQS 佇列,然後執行下列動作:

    1. 佇列 * 中,選擇目標佇列。

  8. 選擇 Configure details (設定詳細資訊)

  9. 在 [步驟 2:設定規則詳細資料] 頁面上,輸入名稱和說明。

  10. 選擇 Create rule (建立規則)