

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

# プロパティ値の更新を Amazon DynamoDB に発行する
<a name="publish-to-amazon-dynamodb"></a>

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

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

**Topics**
+ [前提条件](#dynamodb-tutorial-prerequisites)
+ [ステップ 1: プロパティ値の更新を発行 AWS IoT SiteWise するように を設定する](#dynamodb-tutorial-enable-value-notifications)
+ [ステップ 2: AWS IoT Core でルールを作成する](#dynamodb-tutorial-create-iot-rule)
+ [ステップ 3: DynamoDB ルールアクションを設定する](#dynamodb-tutorial-configure-rule-action)
+ [ステップ 4: DynamoDB でデータを調べる](#dynamodb-tutorial-explore-dynamodb-data)
+ [リソースをクリーンアップする](#dynamodb-tutorial-clean-up-resources)
+ [その他のリソース](#dynamodb-tutorial-additional-resources)

## 前提条件
<a name="dynamodb-tutorial-prerequisites"></a>

このチュートリアルを完了するには、以下が必要です。
+  AWS アカウント。アカウントをお持ちでない場合は、「[AWS アカウントを設定する](getting-started.md#set-up-aws-account)」を参照してください。
+ にアクセスするために Windows、macOS、Linux、または Unix を実行している開発用コンピュータ AWS マネジメントコンソール。詳細については、「[AWS マネジメントコンソールとは](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/what-is.html)」を参照してください。
+ 管理者権限を持つ AWS Identity and Access Management (IAM) ユーザー。詳細な手順については、「[が IAM と AWS IoT SiteWise 連携する方法](security_iam_service-with-iam.md)」を参照してください。
+ 実行中の AWS IoT SiteWise デモ。詳細については、「[AWS IoT SiteWise デモを使用する](getting-started-demo.md)」を参照してください。

**注記**  
このチュートリアルでは、 で作成されたリソースを使用する必要があります[AWS IoT SiteWise デモを使用する](getting-started-demo.md)。このチュートリアルに進む前に完了する必要があります。

**重要**  
このチュートリアルを完了するまで、すべてのデモリソースを保持します。コンポーネントを削除すると、デモの機能が中断され、チュートリアルを完了する能力に影響する可能性があります。

## ステップ 1: プロパティ値の更新を発行 AWS IoT SiteWise するように を設定する
<a name="dynamodb-tutorial-enable-value-notifications"></a>

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

**アセットプロパティでプロパティ値の更新に関する通知を有効にするには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)にサインインします。

1.  AWS IoT SiteWise がサポートされている[AWS IoT SiteWise エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/iot-sitewise.html)を確認し、必要に応じて AWS リージョンを切り替えます。 AWS IoT SiteWise デモを実行しているリージョンに切り替えます。

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

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

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

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

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

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

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

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

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

1. [**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 でルールを作成する
<a name="dynamodb-tutorial-create-iot-rule"></a>

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

**DynamoDB アクションを使用したルールの作成**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に移動します。

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

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

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

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

   ```
   $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}}
   ```

1. 次のルールクエリステートメントを入力します。`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'
   ```

1. **ルールアクション**で、**アクション 1 **に移動します。

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

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

1. [DynamoDB コンソール](https://console.aws.amazon.com/dynamodb/)の**テーブル名**に、テーブルの名前を入力します。

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

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

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

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

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

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

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

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

## ステップ 3: DynamoDB ルールアクションを設定する
<a name="dynamodb-tutorial-configure-rule-action"></a>

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

**DynamoDB ルールアクションを構成するには**

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

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

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

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

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

## ステップ 4: DynamoDB でデータを調べる
<a name="dynamodb-tutorial-explore-dynamodb-data"></a>

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

**DynamoDB でアセットデータを検索する**

1. DynamoDB テーブルを開いた状態でタブに戻ります。

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

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

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

チュートリアルを完了したので、ルールを無効化または削除し、DynamoDB テーブルを削除して、追加料金が発生しないようにできます。リソースをクリーンアップするには、「[リソースをクリーンアップする](#dynamodb-tutorial-clean-up-resources)」を参照してください。

このデータを消費して視覚化するカスタムアプリケーションを作成する方法についても説明します。 AWS IoT SiteWise データの視覚化に関するガイド付きチュートリアルについては、「」を参照してください[Grafana でデータを視覚化して共有する](visualize-with-grafana.md)。

## リソースをクリーンアップする
<a name="dynamodb-tutorial-clean-up-resources"></a>

チュートリアルを完了したら、追加料金が発生しないようにリソースをクリーンアップします。

** AWS IoT SiteWise デモを削除するには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. ページの右上隅で、**デモの削除**を選択します。

1. 確認フィールドに「**DELETE**」と入力し、[**削除**] を選択します。

詳細については、「[AWS IoT SiteWise デモを削除する](getting-started-demo.md#delete-getting-started-demo)」を参照してください。

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

**アセットプロパティでプロパティ値の更新に関する通知を無効にするには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

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

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

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

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

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

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

**でルールを無効化または削除するには AWS IoT Core**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に移動します。

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

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

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

**DynamoDB テーブルを削除するには**

1. [[DynamoDB console]](https://console.aws.amazon.com/dynamodb/) (DynamoDB コンソール) に移動します。

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

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

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

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

## その他のリソース
<a name="dynamodb-tutorial-additional-resources"></a>

DynamoDB の操作とデータのモニタリングの詳細については、次のリソースを参照してください。
+ DynamoDB デベロッパーガイドの[ CloudWatch を使用した でのメトリクスのモニタリング ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Monitoring-metrics-with-Amazon-CloudWatch.html) *DynamoDB *
+ *DynamoDB デベロッパーガイド*[の でパーティションキーを効果的に設計および使用するためのベストプラクティス ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html) 
+ *AWS IoT デベロッパーガイド*の [のルール AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) 
+ [Grafana でデータを視覚化して共有する](visualize-with-grafana.md)