

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

# Amazon Location Service により AWS IoT と MQTT を使ってトラッキングする
<a name="tracking-using-mqtt"></a>

[MQTT](http://mqtt.org/) は、制約のあるデバイス用に設計され、軽量で広く採用されているメッセージングプロトコルです。AWS IoT Core は、MQTT プロトコルと MQTT over WebSocket Secure (WSS) プロトコルを使用するデバイス接続をサポートしています。

[AWS IoT Core](https://aws.amazon.com/iot-core/) はデバイスをAWSに接続し、デバイス間でメッセージの送受信を可能にする。AWS IoT Core ルールエンジンは、デバイスのメッセージトピックに関するクエリを保存し、Amazon Location Service などの他の AWS サービスにメッセージを送信するためのアクションを定義できるようにします。位置を座標として認識するデバイスは、ルールエンジンを通じて Amazon Location に位置情報を転送できます。

**注記**  
デバイスは内蔵の GPS などを通じて自分の位置を知ることができます。AWS IoT はサードパーティのデバイスの位置追跡もサポートしています。詳細については、AWS IoT 開発者ガイド (デベロッパーガイド) の「[AWS IoT コアデバイスのデータ](https://docs.aws.amazon.com/iot/latest/developerguide/device-location.html)」を参照してください。

以下のウォークスルーでは、AWS IoT Core ルールを使ったトラッキングについて説明します。Amazon Location に送信する前に処理する必要がある場合は、デバイス情報を独自の AWS Lambda 機能に送信することもできます。Lambda を使用してデバイスの位置を処理する方法の詳細については、「[MQTT AWS Lambda で を使用する](tracking-using-mqtt-with-lambda.md)」を参照してください。

**Topics**
+ [前提条件](#mqtt-prerequisite)
+ [AWS IoT Core ルールを作成します](#mqtt-create-iot-rule)
+ [コンソールで AWS IoT Core ルールをテストする](#mqtt-test-iot-rule)
+ [MQTT AWS Lambda で を使用する](tracking-using-mqtt-with-lambda.md)

## 前提条件
<a name="mqtt-prerequisite"></a>

追跡を開始する前に、以下の前提条件を完了する必要があります。
+ デバイスの位置データを送信する[トラッカーリソースを作成します](start-create-tracker.md)。
+ トラッカーへの AWS IoT Core アクセスを許可する [IAM ロールを作成します](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-role.html)。

  これらの手順を実行するときは、以下のポリシーを使用してトラッカーへのアクセスを許可してください。

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "WriteDevicePosition",
        "Effect": "Allow",
        "Action": "geo:BatchUpdateDevicePosition",
        "Resource": "arn:aws:geo:*:*:tracker/*"
      }
    ]
  }
  ```

## AWS IoT Core ルールを作成します
<a name="mqtt-create-iot-rule"></a>

次に、デバイスの位置テレメトリを Amazon Location Service に転送する AWS IoT Core ルールを作成します。Lambda 関数 URL の詳細については、AWS IoT Core デベロッパーガイドの以下のトピックを参照してください。
+ 「[AWS IoT ルールの作成](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-rule.html)」には、新しいルールの作成に関する情報が記載されています。
+ Amazon Location に公開するためのルール作成に固有の[ロケーションアクション](https://docs.aws.amazon.com/iot/latest/developerguide/location-rule-action.html) 

## コンソールで AWS IoT Core ルールをテストする
<a name="mqtt-test-iot-rule"></a>

現在位置情報を含むテレメトリを公開しているデバイスがない場合は、AWS IoT Core コンソールを使用してルールをテストすることができます。コンソールにはテストクライアントがあり、サンプルメッセージを公開してソリューションの結果を検証することができます。

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

1. 左側のナビゲーションメニューの **[テスト]** で、**[MQTT テストクライアント]** を選択します。

1. **トピックに公開**で、**トピック名**を {{iot/topic}} (異なる場合は AWS IoT Core ルールで設定したトピックの名前) に設定し、**メッセージペイロード**には次のように入力します。タイムスタンプ {{1604940328}} を過去 30 日以内の有効なタイムスタンプに置き換えます (30 日を超えるタイムスタンプは Amazon Location Service ストラッカーによって無視されます)。

   ```
   {
     "payload": {
       "deviceid": "thing123",
       "timestamp": {{1604940328}},
       "location": { "lat": 49.2819, "long": -123.1187 },
       "accuracy": { "Horizontal": 20.5 },
       "positionProperties": { "field1": "value1", "field2": "value2" }
     }
   }
   ```

1. テストメッセージを送信するには、**[発行]** を選択します。

1. メッセージが Amazon Location Service によって受信されたことを確認するには、次の AWS CLI コマンドを使用します。セットアップ中に変更した場合は、トラッカー名を使用していたものに置き換えてください。

   ```
   aws location batch-get-device-position --tracker-name {{MyTracker}} --device-ids thing123
   ```