AWS IoT
開発者ガイド

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

DynamoDB アクションを使用すると、受信 MQTT メッセージから情報を取得し、DynamoDB テーブルに書き込むことができます。

DynamoDB ルールを作成するには:

  1. AWS IoT コンソールのナビゲーションペインで、[ACT] を選択します。

  2. [Rules] ページで、[Create] を選択します。

  3. [ルールの作成] ページで、ルールの名前と説明を入力します。

    注記

    ルールの名前や説明に個人を特定できる名前や情報を使用することはお勧めしません。

  4. [ルールクエリステートメント] で、[SQL バージョンの使用] リストから最新バージョンを選択します。[ルールクエリステートメント] に、以下のように入力します。

    SELECT * FROM 'my/greenhouse'

    "SELECT *" は、ルールをトリガーした MQTT メッセージ全体を送信することを指定します。"FROM 'my/greenhouse'" は、トピックがこのトピックフィルタに一致する MQTT メッセージを受信すると、このルールをトリガーするように、ルールエンジンに指示します。[アクションの追加] を選択します。

  5. [アクションを選択してください] で、[DynamoDB テーブルにメッセージを挿入する] を選択してから [アクションの設定] を選択します。

  6. [アクションの設定] で、[Create a new resource (新しいリソースの作成)] を選択します。

  7. [Amazon DynamoDB] ページで [Create table] を選択します。

  8. [Create DynamoDB table (DynamoDB テーブルの作成)] で、名前を入力します。[パーティションキー] に「Row」と入力します。[ソートキーの追加] を選択し、[ソートキー] フィールドに「PositionInRow」と入力します。Row は温室内の植物の列を表し、PositionInRow は列の中での植物の位置を示します。パーティションキーとソートキーの両方について、[文字列] を選択し、[作成] を選択します。DynamoDB テーブルの作成には数秒かかります。Amazon DynamoDB コンソールが開いているブラウザタブを閉じます。タブを閉じないと、DynamoDB テーブルは AWS IoT コンソールの [アクションの設定] ページの [テーブル名] リストに表示されません。

  9. [アクションの設定] で、[テーブル名] リストから新しいテーブルを選択します。[パーティションキーの値] に「${row}」と入力します。これによりルールでは、MQTT メッセージから row 属性の値が取得され、DynamoDB テーブルの [Row] 列に書き込まれます。[ソートキー値] に「${pos}」と入力します。これにより、pos 属性の値が [PositionInRow] に書き込まれます。[この列にメッセージデータを書き込む] に Payload と入力します。これにより、メッセージペイロードが Payload 列に挿入されます。[オペレーション] は空白のままにします。このフィールドでは、アクションがトリガーされたときに実行するオペレーション (INSERT、UPDATE、DELETE) を指定できます。[Create a new role] を選択します。

  10. [新しいロールの作成] に、一意の名前を入力し、[ロールの作成] を選択します。

  11. [Add action] を選択します。

  12. [Create rule] を選択します。

DynamoDB アクションを使用したルールのテスト

  1. ルールをテストするには、AWS IoT コンソールを開き、ナビゲーションペインで [テスト] を選択します。

  2. [トピックに発行] を選択します。[発行] セクションに、my/greenhouse と入力します。メッセージ領域で、次の JSON を入力します。

    { "row" : "0", "pos" : "0", "moisture" : "75" }

    DynamoDB コンソールに戻って、[テーブル] を選択します。

    [GreenhouseTable] を選択し、[項目] を選択します。データは、[項目] タブに表示されます。