

AWS IoT FleetWise は、2026 年 4 月 30 日をもって新規顧客に公開されなくなります。既存の AWS IoT FleetWise のお客様は、このサービスを引き続き使用できます。[の「接続モビリティのガイダンス AWS](https://aws.amazon.com/solutions/guidance/connected-mobility-on-aws/)」では、 AWS IoT FleetWise と同等の機能を実現するために使用できる接続モビリティソリューションのモジュラーサービスを開発およびデプロイする方法に関するガイダンスを提供します。

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

# MQTT メッセージングを使用して最後の既知の状態車両データを処理する
<a name="process-last-known-state-vehicle-data"></a>

**重要**  
現在、特定の AWS IoT FleetWise 機能へのアクセスはゲートされています。詳細については、「[AWS AWS IoT FleetWise でのリージョンと機能の可用性](fleetwise-regions.md)」を参照してください。

車両から更新を受け取り、そのデータを処理するには、次の MQTT トピックにサブスクライブします。詳細については、「*AWS IoT Core デベロッパーガイド*」の「[MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-devices.html)」を参照してください。

```
$aws/iotfleetwise/vehicles/$vehicle_name/last_known_state/$state_template_name/data
```

MQTT は注文を保証しないため、最後の既知の状態シグナル更新メッセージが順序どおりに受信されない可能性があります。MQTT を使用して車両データを受信および処理するクライアントは、これを処理する必要があります。最後の既知の状態シグナル更新メッセージは、MQTT 5 メッセージングプロトコルに従います。

各 MQTT メッセージのメッセージヘッダーには、次のユーザープロパティがあります。
+ **vehicleName** – [車両の](vehicles.md)一意の識別子。
+ **stateTemplateName** – 最後の既知の[状態テンプレート](state-templates.md)の一意の識別子。

さらに、状態テンプレートを更新または作成するときに`metadataExtraDimensions`リクエストパラメータを指定することで、MQTT メッセージヘッダーに含める[車両属性](signal-catalogs.md)を指定できます。([「 状態テンプレート](state-templates.md)」を参照してください）。

MQTT メッセージヘッダーのユーザープロパティは、ペイロードを検査せずにメッセージを異なる宛先にルーティングするのに役立ちます。

MQTT メッセージペイロードには、車両から収集されたデータが含まれます。状態テンプレートを作成または更新するときに`extraDimensions`リクエストパラメータを指定することで、MQTT メッセージペイロードに含める車両属性を指定できます (「」を参照[AWS IoT FleetWise 状態テンプレートを作成する](state-templates.md))。追加のディメンションは、追加のディメンションを関連付けることで、車両から収集されたデータを強化します。

MQTT メッセージペイロードはプロトコルバッファ (Protobuf) でエンコードされ、MQTT メッセージヘッダーには application/octet-stream として定義されたコンテンツタイプインジケータが含まれています。Protobuf エンコーディングスキーマは次のとおりです。

```
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

syntax = "proto3";

option java_package = "com.amazonaws.iot.autobahn.schemas.lastknownstate";
package Aws.IoTFleetWise.Schemas.CustomerMessage;

message LastKnownState {

  /*
   * The absolute timestamp in milliseconds since Unix Epoch of when the event was triggered in vehicle.
   */
  uint64 time_ms = 1;

  /*
   * This field is deprecated, use signals instead
   */
  repeated Signal signal = 2 [ deprecated = true ];

  repeated Signal signals = 3;

  repeated ExtraDimension extra_dimensions = 4;
}

message Signal {

  /*
   * The Fully Qualified Name of the signal is the path to the signal plus the signal's name.
   * For example, Vehicle.Chassis.SteeringWheel.HandsOff.HandsOffSteeringState
   * The fully qualified name can have up to 150 characters. Valid characters: a-z, A-Z, 0-9, : (colon), and _ (underscore).
   */
  string name = 1;

  /*
   * The FWE reported signal value can be one of the following data types.
   */
  oneof SignalValue {
    double double_value = 2;

    bool boolean_value = 3;

    sint32 int8_value = 4;

    uint32 uint8_value = 5;

    sint32 int16_value = 6;

    uint32 uint16_value = 7;

    sint32 int32_value = 8;

    uint32 uint32_value = 9;

    sint64 int64_value = 10;

    uint64 uint64_value = 11;

    float float_value = 12;
    /*
     * An UTF-8 encoded or 7-bit ASCII string
     */
    string string_value = 13;
  }
}

message ExtraDimension {
  /*
   * The Fully Qualified Name of the attribute is the path to the attribute plus the attribute's name.
   * For example, Vehicle.Model.Color
   * The fully qualified name can have up to 150 characters. Valid characters: a-z, A-Z, 0-9, : (colon), and _ (underscore).
   */
  string name = 1;

  oneof ExtraDimensionValue {
    /*
     * An UTF-8 encoded or 7-bit ASCII string
     */
    string string_value = 2;
  }
}
```

コードの説明は以下のとおりです。
+ `time_ms`:

  車両でイベントがトリガーされたときの絶対タイムスタンプ (Unix エポックからのミリ秒単位）。Edge Agent ソフトウェアは、このタイムスタンプのために車両のクロックで を使用します。
+ `signal`:

  シグナル情報`Signal`を含む の配列: `name` (文字列) および `signalValue`は、、`double`、、`bool`、、`int8``uint8`、`int16`、`uint16`、、`int32``uint32``int64``uint64``float`、、 のデータ型をサポートします`string`。
+ `extra_dimensions`:

  車両属性情報`ExtraDimensions`を含む の配列: `name` (文字列) で`extraDimensionValue`、現在 `string` データ型のみをサポートしています。