終止支援通知:在 2025 年 12 月 15 日, AWS 將終止對 的支援 AWS IoT Analytics。2025 年 12 月 15 日之後,您將無法再存取 AWS IoT Analytics 主控台或 AWS IoT Analytics 資源。如需詳細資訊,請參閱AWS IoT Analytics 終止支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過 Amazon CloudWatch Events 取得延遲資料通知
當您使用來自指定時間範圍的資料建立資料集內容時,某些資料可能無法及時送達進行處理。若要允許延遲,您可以在建立資料集QueryFilter時套用 queryAction(SQL 查詢) 來指定 的deltaTime位移。 AWS IoT Analytics 仍會處理在差異時間內抵達的資料,而且您的資料集內容會有時間延遲。延遲資料通知功能可讓 在資料於差異時間後送達時,透過 Amazon CloudWatch Events AWS IoT Analytics 傳送通知。
您可以使用 AWS IoT Analytics 主控台、API、AWS Command Line Interface (AWS CLI) 或 AWS SDK 來指定資料集的延遲資料規則。
在 AWS IoT Analytics API 中, LateDataRuleConfiguration 物件代表資料集的延遲資料規則設定。此物件是與 CreateDataset和 UpdateDataset API 操作相關聯的Dataset物件的一部分。
參數
當您使用 建立資料集的延遲資料規則時 AWS IoT Analytics,您必須指定下列資訊:
ruleConfiguration(LateDataRuleConfiguration)-
包含延遲資料規則組態資訊的結構。
deltaTimeSessionWindowConfiguration-
包含差異時間工作階段時段之組態資訊的結構。
DeltaTime 指定時間間隔。您可以使用
DeltaTime建立資料集內容,其中包含自上次執行以來已到達資料存放區的資料。如需 的範例DeltaTime,請參閱使用差異視窗 (CLI) 建立 SQL 資料集。timeoutInMinutes-
時間間隔。您可以使用
timeoutInMinutes讓 AWS IoT Analytics 批次處理自上次執行後產生的延遲資料通知。 AWS IoT Analytics 會一次傳送一批次通知至 CloudWatch Events。類型:整數
有效範圍:1-60
ruleName-
延遲資料規則的名稱。
類型:字串
重要
若要指定 lateDataRules,資料集必須使用DeltaTime篩選條件。
設定延遲資料規則 (主控台)
下列程序說明如何在 AWS IoT Analytics 主控台中設定資料集的延遲資料規則。
設定延遲資料規則
-
在導覽窗格中,選擇資料集。
-
在資料集下,選擇目標資料集。
-
在導覽窗格中,選擇詳細資訊。
-
在 Delta 視窗區段中,選擇編輯。
-
在設定資料選取篩選條件下,執行下列動作:
-
針對資料選擇視窗,選擇 Delta 時間。
-
針對位移,輸入時段,然後選擇單位。
-
針對時間戳記表達式,輸入表達式。這可以是時間戳記欄位的名稱或可衍生時間的 SQL 表達式,例如
from_unixtime(time)。如需如何撰寫時間戳記表達式的詳細資訊,請參閱 Presto 0.172 文件中的日期和時間函數和運算子
。 -
針對延遲資料通知,選擇作用中。
-
針對 Delta 時間,輸入整數。有效範圍為 1-60。
-
選擇儲存。
-
設定延遲資料規則 (CLI)
在 AWS IoT Analytics API 中, LateDataRuleConfiguration 物件代表資料集的延遲資料規則設定。此物件是與 CreateDataset和 相關聯的Dataset物件的一部分UpdateDataset。您可以使用 APIAWS CLI、 或 AWS SDK 來指定資料集的延遲資料規則。下列為使用 AWS CLI的範例。
若要使用指定的延遲資料規則建立資料集,請執行下列命令。命令假設dataset.json檔案位於目前的目錄中。
注意
您可以使用 UpdateDataset API 來更新現有的資料集。
aws iotanalytics create-dataset --cli-input-json file://dataset.json
dataset.json 檔案應包含下列項目:
-
將
demo_dataset取代為目標資料集名稱。 -
將
demo_datastore取代為目標資料存放區名稱。 -
將
from_unixtime(time)取代為時間戳記欄位的名稱或可衍生時間的 SQL 表達式。如需如何撰寫時間戳記表達式的詳細資訊,請參閱 Presto 0.172 文件中的日期和時間函數和運算子
。 -
將
逾時取代為介於 1–60 之間的整數。 -
以任何名稱取代
demo_rule。
{ "datasetName": "demo_dataset", "actions": [ { "actionName": "myDatasetAction", "queryAction": { "filters": [ { "deltaTime": { "offsetSeconds":-180, "timeExpression": "from_unixtime(time)" } } ], "sqlQuery": "SELECT * FROMdemo_datastore" } } ], "retentionPeriod": { "unlimited": false, "numberOfDays": 90 }, "lateDataRules": [ { "ruleConfiguration": { "deltaTimeSessionWindowConfiguration": { "timeoutInMinutes":timeout} }, "ruleName": "demo_rule" } ] }
訂閱以接收延遲資料通知
您可以在 CloudWatch Events 中建立規則,以定義如何處理從 傳送的延遲資料通知 AWS IoT Analytics。當 CloudWatch Events 收到通知時,它會叫用規則中定義的指定目標動作。
建立 CloudWatch Events 規則的先決條件
為 建立 CloudWatch Events 規則之前 AWS IoT Analytics,您應該執行下列動作:
-
熟悉 CloudWatch Events 中的事件、規則和目標。
-
建立和設定 CloudWatch Events 規則調用的目標。規則可以叫用許多類型的目標,例如:
-
Amazon Kinesis Streams
-
AWS Lambda 函數
-
Amazon Simple Notification Service (Amazon SNS) 主題
-
Amazon Simple Queue Service (Amazon SQS) 佇列
您的 CloudWatch Events 規則和相關聯的目標必須位於您建立 AWS IoT Analytics 資源的 AWS 區域中。如需詳細資訊,請參閱《AWS 一般參考》中的服務端點和配額。
-
如需詳細資訊,請參閱《Amazon CloudWatch Events 使用者指南》中的什麼是 CloudWatch Events?和 Amazon CloudWatch Events 入門。 Amazon 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 Events 規則以接收延遲資料通知
下列程序說明如何建立將 AWS IoT Analytics 延遲資料通知傳送至 Amazon SQS 佇列的規則。
建立 CloudWatch Events 規則
-
在導覽窗格的 Events (事件) 下,選擇 Rules (規則)。
-
在規則頁面上,選擇建立規則。
-
在事件來源下,選擇事件模式。
-
在依服務比對事件的建置事件模式中,執行下列動作:
-
針對服務名稱,選擇 IoT Analytics
-
針對事件類型,選擇 IoT Analytics 資料集生命週期通知。
-
選擇特定資料集名稱 (多個),然後輸入目標資料集的名稱。
-
-
在目標下,選擇新增目標*。
-
選擇 SQS 佇列,然後執行下列動作:
-
針對佇列*,選擇目標佇列。
-
-
選擇設定詳細資訊。
-
在步驟 2:設定規則詳細資訊頁面上,輸入名稱和描述。
-
選擇建立規則。