プロパティ値の更新を Amazon DynamoDB に発行する - AWS IoT SiteWise

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

プロパティ値の更新を Amazon DynamoDB に発行する

このチュートリアルでは、Amazon DynamoDB を使用してデータを保存する便利な方法を紹介します。これにより、 AWS IoT SiteWise API を繰り返しクエリすることなく、履歴アセットデータに簡単にアクセスできます。このチュートリアルを完了すると、風力発電所全体の風速や風向のライブマップなど、アセットデータを消費するカスタムソフトウェアを作成できます。カスタムソフトウェアソリューションを実装せずにデータを監視および可視化する場合は、「でデータをモニタリングする AWS IoT SiteWise Monitor」を参照してください。

このチュートリアルでは、風力発電所用のデータセットのサンプルを提供する AWS IoT SiteWise デモに基づいて構築します。風力発電施設のデモでは、プロパティ値の更新が AWS IoT Core ルールを介して、作成したDynamoDB テーブルにデータを送信するように設定されています。プロパティ値の更新を有効にすると、 AWS IoT SiteWise は MQTT メッセージ AWS IoT Core で にデータを送信します。次に、それらのメッセージの内容に応じて、DynamoDB アクションなどのアクションを実行する AWS IoT Core ルールを定義します。詳細については、「他の AWS サービスとやり取りする」を参照してください。

前提条件

このチュートリアルを完了するには、以下が必要です。

  • AWS アカウント。アカウントをお持ちでない場合は、「AWS アカウントを設定する」を参照してください。

  • にアクセスするために Windows、macOS、Linux、または Unix を実行している開発用コンピュータ AWS Management Console。詳細については、「AWS Management Consoleとは」を参照してください。

  • 管理者権限を持つ IAM ユーザー。詳細な手順については、「が IAM と AWS IoT SiteWise 連携する方法」を参照してください。

  • 実行中の AWS IoT SiteWise 風力発電所のデモ。デモを設定すると、 でモデルとアセットを定義 AWS IoT SiteWise し、風力発電所を表すようにデータをストリーミングします。詳細については、「AWS IoT SiteWise デモを使用する」を参照してください。

ステップ 1: プロパティ値の更新を発行 AWS IoT SiteWise するように を設定する

この手順では、デモタービンアセットの [Wind Speed] プロパティでプロパティ値の通知を有効にします。プロパティ値通知を有効にすると、 は各値の更新を MQTT メッセージで AWS IoT Core に AWS IoT SiteWise 発行します。

アセットプロパティでプロパティ値の更新に関する通知を有効にするには
  1. AWS IoT SiteWise コンソールにサインインします。

  2. AWS IoT SiteWise がサポートされているAWS IoT SiteWise エンドポイントとクォータを確認し、必要に応じて AWS リージョンを切り替えます。 AWS IoT SiteWise デモを実行しているリージョンに切り替えます。

  3. 左側のナビゲーションペインで [アセット] を選択します。

  4. Demo Wind Farm Asset の横にある矢印を選択して、風力発電施設のアセットの階層を展開します。

  5. Demo Turbine を選択し、[編集] を選択します。

  6. [測定] を選択します。

  7. Wind Speed プロパティの MQTT 通知ステータスACTIVE に更新します。

  8. ページの最下部で [保存] をクリックします。

  9. 各 Demo Turbine Asset に対し、手順 5 ~ 7 を繰り返します。

  10. デモタービン (Demo Turbine Asset 1など) を選択します。

  11. [測定] を選択します。

  12. [Wind Speed] プロパティの横にあるコピーアイコンを選択して、通知トピックをクリップボードにコピーします。保存した通知トピックは、このチュートリアルの後半で使用します。通知トピックは、1 つの Turbine から記録するだけで大丈夫です。

    通知トピックは、次の例のようになります。

    $aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

ステップ 2: AWS IoT Core でルールを作成する

このステップでは、プロパティ値通知メッセージを解析し、Amazon DynamoDB テーブルにデータを挿入するルールを AWS IoT Core で作成します。 AWS IoT コアルールは MQTT メッセージを解析し、各メッセージの内容とトピックに基づいてアクションを実行します。このチュートリアルの一部として作成した DynamoDB テーブルにデータを挿入する DynamoDB アクションでルールを作成します。

DynamoDB アクションを使用したルールの作成
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションペインで、メッセージルーティングを選択し、ルールを選択します

  3. [‬ルールを作成]‭ を選択します。

  4. ルールプロパティを指定する に、ルールの名前と説明を入力します。

  5. このチュートリアルの前の手順で保存した通知トピックを見つけます。

    $aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

    トピックのアセット ID (assets/ の後の ID) を + に置き換えます。これにより、すべてのデモ風力タービンアセットの風速プロパティが選択されます。+ トピックフィルターは、トピック内の 1 つのレベルのすべてのノードを受け入れます。トピックは次の例のようになります。

    $aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
  6. 次のルールクエリステートメントを入力します。FROM セクションのトピックを通知トピックに置き換えます。

    SELECT payload.assetId AS asset, (SELECT VALUE (value.doubleValue) FROM payload.values) AS windspeed, timestamp() AS timestamp FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'
  7. ルールアクションで、アクション 1 に移動します。

  8. アクションの選択ページで、DynamoDBv2 を選択します。これにより、メッセージが DynamoDB テーブルの複数の列に分割されます。

  9. Table name で、Create new table を選択します。ルールアクションから風速データを受信する Amazon DynamoDB テーブルを作成します。

  10. DynamoDB コンソールテーブル名に、テーブルの名前を入力します。

  11. パーティションキーの場合は、次の操作を行います。

    1. パーティションキーとして timestamp を入力します。

    2. [数値] の種類を選択します。

    3. [ソートキーの追加] のチェックボックスをオンにします。

    4. ソートキーとして asset と入力し、デフォルトのソートキーの種類は文字列のままにします。

  12. [テーブルの作成] を選択します。

  13. アクションの設定のページのタブに戻ります。

  14. ルールのアタッチアクションページで、テーブル名リストを更新し、前のステップで作成した新しい DynamoDB テーブルを選択します。

ステップ 3: DynamoDB ルールアクションを設定する

このステップでは、プロパティ値の更新から新しい DynamoDB テーブルにデータを挿入するように Amazon DynamoDB ルールアクションを設定します。

DynamoDB ルールアクションを構成するには
  1. ロールの作成 を選択して、ルールアクションを実行するための AWS IoT Core アクセスを許可する IAM ロールを作成します。

  2. ロール名を入力します。例: WindSpeedDataRole。[ロールの作成] を選択してください。

  3. [次へ] を選択します。

  4. ページの下部にある作成を選択して、ルールの作成を完了します。

    デモのアセットデータが DynamoDB テーブルに表示され始めます。

ステップ 4: DynamoDB でデータを調べる

このステップでは、新しい Amazon DynamoDB テーブルでデモアセットの風速データを確認します。

DynamoDB でアセットデータを検索する
  1. DynamoDB テーブルを開いた状態でタブに戻ります。

  2. 前に作成したテーブルで、Explore table items タブを選択して、テーブル内のデータを表示します。テーブルに行が表示されない場合は、ページを更新します。数分経過しても行が表示されない場合は、ルールをトラブルシューティング (DynamoDB) を参照してください。

  3. テーブルの行で、編集アイコンを選択してデータを展開します。

  4. windspeed 構造の横にある矢印を選択して、風速データポイントのリストを展開します。各リストには、風力発電所のデモ AWS IoT SiteWise によって に送信された風速データポイントのバッチが反映されます。独自のルールアクションを設定する場合は、別のデータ形式を使用することもできます。詳細については、「でアセットプロパティ通知をクエリする AWS IoT SiteWise」を参照してください。

チュートリアルを完了したので、追加料金が発生しないように、ルールを無効化または削除し、 DynamoDB テーブルを削除します。リソースをクリーンアップするには、「ステップ 5: チュートリアルの後にリソースをクリーンアップする」を参照してください。

ステップ 5: チュートリアルの後にリソースをクリーンアップする

チュートリアルを完了したら、追加料金が発生しないようにリソースをクリーンアップします。デモの風力発電所アセットは、デモの作成時に選択した期間の終了時に削除されます。エンドポイントを手動で削除することもできます。

AWS IoT SiteWise デモは 1 週間後にそれ自体、または AWS CloudFormation コンソールからデモスタックを作成した場合は選択した日数だけ削除されます。デモリソースの使用が完了したら、 より前にデモを削除できます。デモの作成に失敗した場合も、デモを削除することができます。デモを手動で削除するには、次の手順に従います。

(オプション) AWS IoT SiteWise デモを削除するには

  1. AWS CloudFormation コンソールに移動します。

  2. スタックのリストから IoTSiteWiseDemoAssets を選択します。

  3. [Delete (削除)] を選択します。

    スタックを消去すると、デモ用に作成されたすべてのリソースが消去されます。

  4. 確認ダイアログで、[スタックの削除] を選択します。

    スタックの消去には約 15 分かかります。デモの消去に失敗した場合は、右上隅の [消去] を再度選択します。デモを再度削除できない場合は、 AWS CloudFormation コンソールの手順に従って削除に失敗したリソースをスキップし、もう一度試してください。

詳細については、「AWS IoT SiteWise デモを削除する」を参照してください。

プロパティ値の更新通知を無効にし (デモを削除しなかった場合)、 AWS IoT ルールを無効にまたは削除し、DynamoDB テーブルを削除します。

アセットプロパティでプロパティ値の更新に関する通知を無効にするには
  1. AWS IoT SiteWise コンソールに移動します。

  2. 左側のナビゲーションペインで [アセット] を選択します。

  3. Demo Wind Farm Asset の横にある矢印を選択して、風力発電施設のアセットの階層を展開します。

  4. Demo Turbine を選択し、[編集] を選択します。

  5. Wind Speed プロパティの通知ステータスINACTIVE に更新します。

  6. ページの下部にある [アセットを保存] を選択します。

  7. 各 Demo Turbine Asset に対し、手順 4 ~ 6 を繰り返します。

でルールを無効化または削除するには AWS IoT Core
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションペインで [メッセージルーティング] を選択し、[ルール] を選択します。

  3. ルールを選択し、[削除] を選択します。

  4. 確認ダイアログボックスでルール名を入力し、[削除] を選択します。

DynamoDB テーブルを削除するには
  1. [DynamoDB console] (DynamoDB コンソール) に移動します。

  2. 左のナビゲーションペインで、[テーブル] を選択します。

  3. 前に作成したテーブル、たとえば を選択しますWindSpeedData

  4. [削除] を選択します。

  5. 確認ダイアログで、 と入力confirmしてテーブルを削除します。