AWS IoT Analytics は、新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS IoT Analytics 引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon CloudWatch Events を通じた遅延データ通知の取得
指定した時間枠のデータを使用してデータセットコンテンツを作成する場合、一部のデータが処理に間に合わない可能性があります。queryAction
(SQL クエリ) を適用してデータセットを作成するときに QueryFilter
に対して deltaTime
オフセットを指定すれば遅延を許可できます。その後も、AWS IoT Analytics によりデルタ時間内に到着したデータは処理され、データセットコンテンツにはタイムラグがあります。遅延データ通知機能を使えば、データがデルタ時間後に到着した場合に AWS IoT Analytics では Amazon CloudWatch Events を通じて通知を送信できます。
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
の例については、「デルタウィンドウを使用して SQL データセットを作成する (CLI)」を参照してください。timeoutInMinutes
-
時間間隔。
timeoutInMinutes
を使用すれば、AWS IoT Analytics において、全開の実行以降に生成された遅延データ通知のバッチアップが可能です。AWS IoT Analytics では CloudWatch Events に対して一度に通知バッチが 1 つ送信されます。型: 整数
有効な範囲: 1 ~ 60
ruleName
-
遅延データルールの名前。
型: 文字列
重要
lateDataRules
を指定するには、データセットで DeltaTime
フィルターを使用する必要があります。
遅延データルールの設定 (コンソール)
以下の手順は、AWS IoT Analytics コンソールでデータセットの遅延データルールを設定する方法を示しています。
遅延データルールの設定
-
AWS IoT Analytics コンソール
にサインインします。 -
ナビゲーションペインで、[Data sets] (データセット) を選択します。
-
[Data sets] (データセット) でターゲットのデータセットを選択します。
-
ナビゲーションペインで、[Details] (詳細) を選択します。
-
[Delta window] (デルタウィンドウ) セクションで [Edit] (編集) を選択します。
-
[Configure data selection filter] (データ選択フィルターの設定) で以下を実行します。
-
[Data selection window] (データ選択ウィンドウ) で [Delta time] (デルタ時間) を選択します。
-
[Offset] (オフセット) で、期間を入力して単位を選択します。
-
[Timestamp expression] (タイムスタンプ式) で式を入力します。これは、タイムスタンプフィールド名、または時間を取得できる SQL 式になります (
from_unixtime(time)
など)。タイムスタンプ式の記述方法の詳細については、Presto 0.172 ドキュメント
の「日付と時刻の関数と演算子」を参照してください。 -
[Late data notification] (遅延データ通知) で [Active] (アクティブ) を選択します。
-
[Delta time] (デルタ時間) で、整数を入力します。有効な範囲は 1 ~ 60 です。
-
[Save (保存)] を選択します。
-
遅延データルールの設定 (CLI)
AWS IoT Analytics API では、LateDataRuleConfiguration
オブジェクトはデータセットの遅延データルール設定を表します。このオブジェクトは、CreateDataset
と UpdateDataset
に関連する Dataset
オブジェクトの一部です。API、AWS 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 ドキュメント
の「日付と時刻の関数と演算子」を参照してください。 -
timeout
を 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 ルール作成の前提条件
AWS IoT Analytics 用の CloudWatch Events ルールを作成する前に、以下を行う必要があります。
-
CloudWatch Events のイベント、ルール、およびターゲットをしっかりと理解しておきます。
-
CloudWatch Events ルールによって呼び出されるターゲットを作成して設定します。ルールにより、以下のような数多くのタイプのターゲットを呼び出すことができます。
-
Amazon Kinesis Streams
-
AWS Lambda 関数
-
Amazon Simple Notification Service (Amazon SNS) のトピック
-
Amazon Simple Queue Service (Amazon SQS) キュー
CloudWatch Events ルールと関連ターゲットは、AWS リソースを作成した AWS IoT Analytics リージョン内になければなりません。詳細については、「AWS 全般のリファレンス」の「サービスエンドポイントとクォータ」を参照してください。
-
詳細については、Amazon CloudWatch Events ユーザーガイドの「CloudWatch Events とは」と「Amazon CloudWatch Events の開始方法」を参照してください。
遅延データ通知イベント
遅延データ通知のイベントでは次の形式を使用します。
{ "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 ルールの作成方法
-
Amazon CloudWatch コンソール
にサインインします。 -
ナビゲーションペインの [Events (イベント)] で、[Rules (ルール)] を選択します。
-
[Rules] (ルール) ページで、[Create rule] (ルールの作成) を選択します。
-
[Event Source] (イベントソース) で、[Event Pattern] (イベントパターン) を選択します。
-
[Build event pattern to match events by service] (サービス別のイベントに一致するイベントパターンの構築) セクションで以下の作業を実行します。
-
[Service Name] (サービス名) で [IoT Analytics] を選択します。
-
[Event Type] (イベントタイプ) で、[IoT Analytics Dataset Lifecycle Notification] (IoT Analytics データセットライフサイクル通知) を選択します。
-
[Specific dataset name(s)] (特定のデータセット名) を選択し、ターゲットデータセットの名前を入力します。
-
-
[Targets] (ターゲット) で、[Add target*] (ターゲットの追加) を選択します。
-
[SQS queue] (SQS キュー) を選択して、次の作業を行います。
-
[Queue*] (キュー) でターゲットキューを選択します。
-
-
[Configure details] (詳細の設定) を選択します。
-
[Step 2: Configure rule details] (ステップ 2: ルールの詳細を設定する) ページで、名前と説明を入力します。
-
[Create rule (ルールの作成)] を選択します。