

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

# AWS IoT FleetWise キャンペーンを作成する
<a name="create-campaign"></a>

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

 AWS IoT FleetWise コンソールまたは API を使用して、車両データを収集するキャンペーンを作成できます。

**重要**  
キャンペーンが機能するためには、次の条件が満たされている必要があります。  
エッジエージェントソフトウェアが車両内で実行されている。エッジエージェントソフトウェアを開発、インストール、使用する方法の詳細を確認するには、以下の操作を行います。  
[AWS IoT FleetWise コンソール](https://console.aws.amazon.com/iotfleetwise)を開きます。
サービスのホームページの「Get **started with AWS IoT FleetWise**」セクションで、**「Explore Edge Agent**」を選択します。
車両をプロビジョニング AWS IoT Core するように をセットアップしました。詳細については、「[Provision AWS IoT FleetWise 車両](provision-vehicles.md)」を参照してください。

**Topics**
+ [キャンペーンの作成 (コンソール)](#create-campaign-console)
+ [キャンペーンの作成 (AWS CLI)](#create-campaign-cli)
+ [AWS IoT FleetWise キャンペーンの論理式](logical-expression.md)

## キャンペーンの作成 (コンソール)
<a name="create-campaign-console"></a>

 AWS IoT FleetWise コンソールを使用して、車両データを選択、収集、クラウドに転送するキャンペーンを作成します。

**キャンペーンを作成するには**

1. <a name="fleetwise-open-console"></a>[AWS IoT FleetWise コンソール](https://console.aws.amazon.com/iotfleetwise)を開きます。

1. <a name="choose-campaigns"></a>ナビゲーションペインで、**[キャンペーン]** を選択します。

1. **[キャンペーン]** ページで、**[キャンペーンを作成]** を選択し、以下のトピックの手順を完了します。

**Topics**
+ [ステップ 1: キャンペーンを構成する](#configure-campaign-console)
+ [ステップ 2: ストレージ条件とアップロード条件を指定する](#specify-storage-upload-conditions)
+ [ステップ 3: データ送信先を設定する](#configure-data-collection-scheme-console)
+ [ステップ 4: 車両を追加する](#add-attributes-console)
+ [ステップ 5: 確認して作成する](#review-and-create-campaign-console)
+ [ステップ 6: キャンペーンをデプロイする](#update-campaign-console)

**重要**  
キャンペーンを作成する前に、シグナルカタログと車両を用意する必要があります。詳細については、「[Manage AWS IoT FleetWise シグナルカタログ](signal-catalogs.md)」および「[Manage AWS IoT FleetWise 車両](vehicles.md)」を参照してください。
キャンペーンが作成されたら、そのキャンペーンを承認する必要があります。詳細については、「[AWS IoT FleetWise キャンペーンを更新する](update-campaign-cli.md)」を参照してください。

### ステップ 1: キャンペーンを構成する
<a name="configure-campaign-console"></a>

**[一般的な情報]** セクションで、次の操作を行います。

1. キャンペーンの名前を入力します。

1. (オプション) 説明を入力します。

キャンペーンのデータ収集スキームを構成します。データ収集スキームは、どのようなデータをいつ収集するかに関する指示をエッジエージェントソフトウェアに与えます。 AWS IoT FleetWise コンソールでは、次の方法でデータ収集スキームを設定できます。
+ データ収集スキームを手動で定義します。
+ データ収集スキームを自動的に定義するためのファイルをアップロードします。

**[設定オプション]** で、次のいずれかを選択します。
+ 手動でデータ収集スキームのタイプを指定し、オプションを定義してスキームをカスタマイズするには、**[データ収集スキームを定義]** を選択します。

#### データ収集スキームを手動で定義する
<a name="manually-define-scheme-console"></a>

  手動でデータ収集スキームのタイプを指定し、オプションを定義してスキームをカスタマイズします。

  1. **[データ収集スキームの詳細]** セクションで、このキャンペーンで使用するデータ収集スキームのタイプを選択します。収集する車両データを認識するために論理式を使用するには、**[条件ベース]** を選択します。特定の時間間隔を使用して車両データの収集頻度を決定するには、**[時間ベース]** を選択します。

  1. キャンペーンでデータを収集する期間を定義します。
**注記**  
デフォルトでは、承認されたキャンペーンはすぐにアクティブ化され、終了時間は設定されません。追加料金が発生しないようにするには、時間範囲を指定する必要があります。

  1. 条件ベースのデータ収集スキームを指定した場合は、収集するデータを認識する論理式を定義する必要があります。 AWS IoT FleetWise は論理式を使用して、条件ベースのスキーム用に収集するデータを認識します。この式では、シグナルの完全修飾名を表す変数、比較演算子、および比較値を指定する必要があります。

     たとえば、`$variable.`myVehicle.InVehicleTemperature` > 50.0`式を指定すると、 AWS IoT FleetWise は 50.0 を超える温度値を収集します。式の書き方の手順については、「[AWS IoT FleetWise キャンペーンの論理式](logical-expression.md)」を参照してください。

     収集するデータを認識するために使用される論理式を入力します。

  1. (オプション) 条件式の言語バージョンを指定します。デフォルト値は 1 です。

  1. (オプション) 最小トリガー間隔を指定します。これは、2 つのデータ収集イベント間の最小期間です。例えば、シグナルが頻繁に変化する場合は、データの収集速度を遅くすることができます。

  1. エッジエージェントソフトウェアでデータを収集するための **[トリガーモード]** の条件を指定します。デフォルトでは、 Edge Agent for AWS IoT FleetWise ソフトウェアは、条件が満たされるたびに**常に**データを収集します。または、**[最初のトリガー時]** を選択して、条件が初めて満たされたときにのみデータを収集することもできます。

  1. 時間ベースのデータ収集スキームを指定した場合は、**[期間]** を 10,000～60,000 ミリ秒で指定する必要があります。エッジエージェントソフトウェアは、その時間間隔を使用してデータの収集頻度を決定します。

  1. (オプション) スキームの**高度なスキームオプション**を編集します。

     1. データを圧縮することでワイヤレス帯域幅を節約し、ネットワークトラフィックを減らすには、**SNAPPY** を選択します。

     1. (オプション) データ収集イベントの後にデータを収集し続ける期間をミリ秒単位で定義するには、**[トリガー後の収集期間]** を指定します。

     1. (オプション) キャンペーンの優先度レベルを指定するには、キャンペーンの**優先度**を指定します。優先度の数値が小さいキャンペーンほど優先度が高いと見なされ、最初にデプロイされます。

     1. エッジエージェントソフトウェアは、車両がクラウドに接続されていないときにデータを一時的にローカルに保存できます。接続が再確立されると、ローカルに保存されたデータが自動的にクラウドに転送されます。**[データのローカル保存]** で、接続の切断時にエッジエージェントでデータをローカルに保存すかどうかを指定します。

     1. (オプション) シグナルの追加情報を提供するには、**[追加のデータディメンション]** として最大 5 個の属性を追加します。
+ ファイルをアップロードしてデータ収集スキームを定義するには、**ローカルデバイスから .json ファイルをアップロードを選択します**。 AWS IoT FleetWise は、ファイルで定義できるオプションを自動的に定義します。選択されたオプションを確認して更新できます。

#### データ収集スキームを定義するファイルをアップロードする
<a name="import-file-scheme-console"></a>

  データ収集スキームに関する詳細が記述された .json ファイルをアップロードします。

  1. データ収集スキームの情報をインポートするには、**[ファイルを選択]** を選択します。必要なファイル形式の詳細については、API ドキュメントの「[CreateCampaign](https://docs.aws.amazon.com//iot-fleetwise/latest/APIReference/API_CreateCampaign.html#API_CreateCampaign)」を参照してください。
**注記**  
AWS IoT FleetWise は現在、.json ファイル形式の拡張子をサポートしています。

  1.  AWS IoT FleetWise は、ファイル内の情報に基づいてデータ収集スキームを自動的に定義します。 AWS IoT FleetWise が選択したオプションを確認します。必要に応じてオプションを更新できます。

### ステップ 2: ストレージ条件とアップロード条件を指定する
<a name="specify-storage-upload-conditions"></a>

車両がクラウドに接続されていないときに Edge Agent ソフトウェアがデータを一時的にローカルに保存するかどうかを選択するには、スプーリングモードを指定します。
+ **データスプーリングモードで**、次のいずれかを選択します。
  + **未保存** – エッジエージェントソフトウェアはデータを収集しますが、車両がオフラインのときに一時的にローカルに保存することはありません。エッジエージェントソフトウェアは、車両が再接続したときにデータをクラウドに転送します。
  + **ディスクに保存** – エッジエージェントソフトウェアは、車両がオフラインのときにローカルでデータを収集して一時的に保存します。収集されたデータは、エッジエージェント設定ファイルの「永続性」セクションで定義された場所に一時的に保存されます。エッジエージェントは、車両の再接続時にデータをクラウドに転送します。
  + **パーティションを含むディスクに保存** – 車両は、指定されたデータパーティションの Edge にデータを常に一時的に保存します。保存したデータをクラウドに転送するタイミングを選択できます。

    1. (オプション) パーティション ID を入力して、特定のデータセットを指定します。

    1. データを保存する場所としてフォルダ名を入力します。ストレージの場所の絶対パスは です`{persistency_path} / {vehicle_name} / {campaign_name} / {storage_location}`。

    1. パーティションに保存されているデータの最大ストレージサイズを入力します。パーティションが最大サイズに達すると、新しいデータによって古いデータが上書きされます。

    1. このパーティション内のデータがディスクに保持される最小時間を入力します。

    1. (オプション) パーティションのアップロード条件を入力します。

#### シグナルの指定
<a name="specify-signals-console"></a>

キャンペーン中に からデータを収集するシグナルを指定できます。

**データを収集するシグナルを指定するには**

1. **シグナル名**を選択します。

1. (オプション) **最大サンプル数**には、キャンペーン中に Edge Agent ソフトウェアが収集してクラウドに転送するデータサンプルの最大数を入力します。

1. (オプション) **[最小サンプリング間隔]** に、2 つのデータサンプル収集イベント間の最小時間をミリ秒単位で入力します。シグナルが頻繁に変化する場合は、このパラメータを使用してデータの収集速度を遅くすることができます。

1. 別のシグナルを追加するには、**[シグナルをさらに追加]** を選択します。最大 999 個のシグナルを追加できます。

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

### ステップ 3: データ送信先を設定する
<a name="configure-data-collection-scheme-console"></a>

**注記**  
キャンペーンにビジョンシステムデータシグナルが含まれている場合、車両データは Amazon S3 にのみ保存できます。Timestream に保存したり、MQTT トピックに送信したりすることはできません。  
ビジョンシステムデータはプレビューリリースであり、変更される可能性があります。  
Amazon Timestream は、アジアパシフィック (ムンバイ) リージョンでは利用できません。

キャンペーンによって収集されたデータを送信または保存する送信先を選択します。車両データを MQTT トピックに送信するか、Amazon S3 または Amazon Timestream に保存できます。

**[送信先の設定]** で、次の操作を行います。
+ ドロップダウンリストから Amazon S3、Amazon Timestream、または MQTT トピックを選択します。

#### Amazon S3
<a name="S3-destination"></a>

**重要**  
 AWS IoT FleetWise が S3 バケットに書き込むアクセス許可を持っている場合にのみ、S3 にデータを転送できます。アクセス許可の詳細については、[AWS IoT FleetWise によるアクセスの制御](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html)」を参照してください。

車両データを S3 バケットに保存する場合は、**[Amazon S3]** を選択します。S3 は、データをオブジェクトとしてバケットに保存するオブジェクトストレージサービスです。詳細については、[Amazon S3バケットの作成、設定、および操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)」を参照してください。 **

S3 は、データストレージのコストを最適化し、データレイク、一元化されたデータストレージ、データ処理パイプライン、分析など、車両データを利用するための追加メカニズムを提供します。S3 を使用すると、データを保存してバッチ処理や分析を行うことができます。例えば、機械学習 (ML) モデル用に急ブレーキイベントのレポートを作成できます。受信した車両データは、配信前に 10 分間バッファリングされます。

**[S3 destination settings]** で、次の操作を行います。

1. **[S3 bucket]** で、 AWS IoT FleetWise にアクセス許可があるバケットを選択します。

1. (オプション) S3 バケットに保存されているデータを体系化するために使用できるカスタムプレフィックスを入力します。

1. 出力形式を選択します。これは、S3 バケットに保存されるファイルの形式です。

1. S3 バケットに保存されたデータを .gzip ファイルとして圧縮するかどうかを選択します。ストレージコストが最小限に抑えられるため、データを圧縮することをお勧めします。

1. **[S3 送信先の設定]** で選択したオプションに応じて、**[S3 オブジェクト URI の例]** が変更されます。これは、S3 に保存されるファイルの例を示すものです。

#### Amazon Timestream
<a name="Timestream-destination"></a>

**重要**  
 AWS IoT FleetWise に Timestream にデータを書き込むアクセス許可がある場合にのみ、テーブルにデータを転送できます。アクセス許可の詳細については、[AWS IoT FleetWise によるアクセスの制御](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html)」を参照してください。  
Amazon Timestream は、アジアパシフィック (ムンバイ) リージョンでは利用できません。

車両データを Timestream テーブルに保存するには、**[Amazon Timestream]** を選択します。Timestream を使用すると、車両データにクエリを実行して傾向やパターンを特定できます。例えば、Timestream を使用して車両の燃料レベルのアラームを作成できます。受信した車両データは、ほぼリアルタイムに Timestream に転送されます。詳細については、[「Amazon Timestream デベロッパーガイド」の「Amazon Timestream とは](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html)」を参照してください。 **

**[Timestream テーブルの設定]** で、次の操作を行います。

1. **[Timestream データベース名]** で、ドロップダウンリストから Timestream データベースの名前を選択します。

1. **[Timestream テーブル名]** で、ドロップダウンリストから Timestream テーブルの名前を選択します。

**[Timestream のサービスアクセス]** で、次の操作を行います。
+ ドロップダウンリストから IAM ロールを選択します。

#### MQTT トピック
<a name="MQTT-destination"></a>

**重要**  
 AWS IoT FleetWise がトピックへのアクセス許可を持っている場合にのみ、MQTT AWS IoT トピックにデータをルーティングできます。アクセス許可の詳細については、[AWS IoT FleetWise によるアクセスの制御](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html)」を参照してください。

車両データを MQTT トピックに送信するには、**MQTT トピック**を選択します。

MQTT メッセージングによって送信される車両データはほぼリアルタイムで配信され、ルールを使用してアクションを実行したり、データを他の送信先にルーティングしたりできます。MQTT の使用の詳細については、「 *AWS IoT Core デベロッパーガイド*」の[「 デバイス通信プロトコル](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)と [のルール AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)」を参照してください。

1. **MQTT トピック**で、**トピック名**を入力します。

1. **MQTT トピックのサービスアクセス**で、 AWS IoT FleetWise **で新しいサービスロールを作成して使用する**かどうかを選択します。**既存のサービスロールを使用する場合は**、「ロールの選択」のドロップダウンリストで**ロール**を選択します。
+ [**次へ**] を選択します。

### ステップ 4: 車両を追加する
<a name="add-attributes-console"></a>

キャンペーンをデプロイする車両を選択するには、車両のリストで目的の車両を選択します。車両の作成時に追加した属性や値、または車両名で検索して、車両をフィルタリングします。

**[車両をフィルタリング]** で、次の操作を行います。

1. 検索ボックスで属性または車両名を検索し、リストから選択します。
**注記**  
各属性は 1 回だけ使用できます。

1. キャンペーンをデプロイする属性の値または車両名を入力します。例えば、属性の完全修飾名が `fuelType` の場合は、その値として `gasoline` を入力します。

1. 別の車両属性を検索するには、前のステップを繰り返します。車両属性は最大 5 つまで、車両名はいくつでも検索できます。

1. **[車両名]** に、検索条件に一致する車両のリストが表示されます。キャンペーンをデプロイする先の車両を選択します。
**注記**  
検索結果には最大 100 台の車両が表示されます。**[すべて選択]** を選択すると、すべての車両がキャンペーンに追加されます。

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

### ステップ 5: 確認して作成する
<a name="review-and-create-campaign-console"></a>

キャンペーンの構成を確認し、**[キャンペーンを作成]** を選択します。

**注記**  
キャンペーンが作成されたら、ユーザーまたはユーザーのチームがキャンペーンを車両にデプロイする必要があります。

### ステップ 6: キャンペーンをデプロイする
<a name="update-campaign-console"></a>

キャンペーンを作成したら、ユーザーまたはユーザーのチームがキャンペーンを車両にデプロイする必要があります。

**キャンペーンをデプロイするには**

1. **[キャンペーンの概要]** ページで、**[デプロイ]** を選択します。

1. デプロイを開始してキャンペーンに接続された車両からデータ収集を開始することを確認します。

1. **[デプロイ]** を選択します。

キャンペーンに接続されている車両からのデータ収集を一時停止する場合は、**[キャンペーンの概要]** ページで **[停止]** を選択します。キャンペーンに接続されている車両からのデータ収集を再開するには、**[再開]** を選択します。



## キャンペーンの作成 (AWS CLI)
<a name="create-campaign-cli"></a>

[CreateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateCampaign.html) API オペレーションを使用すると、キャンペーンを作成できます。次の例では AWS CLIを使用しています。

キャンペーンを作成すると、車両から収集されたデータを MQTT トピックに送信するか、Amazon S3 (S3) または Amazon Timestream に保存できます。ほぼリアルタイムの処理を必要とするデータを保存する場合など、高速でスケーラブルなサーバーレス時系列データベースが必要な場合は、Timestream を選択します。業界をリードするスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを備えたオブジェクトストレージに S3 を選択します。MQTT を選択してほぼリアルタイムでデータを配信し、 [のルール AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)を使用して、データを定義または他の送信先にルーティングするアクションを実行します。

**重要**  
車両データを MQTT トピック、Amazon S3、または Amazon Timestream に転送できるのは、 AWS IoT FleetWise がユーザーに代わって MQTT メッセージを送信したり、S3 または Timestream にデータを書き込むアクセス許可を持っている場合のみです。アクセス許可の詳細については、[AWS 「 IoT FleetWise によるアクセスの制御](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html)」を参照してください。  
Amazon Timestream は、アジアパシフィック (ムンバイ) リージョンでは利用できません。

### キャンペーンの作成
<a name="create-campaign-command"></a>

**重要**  
キャンペーンを作成する前に、シグナルカタログと車両またはフリートが必要です。詳細については[Manage AWS IoT FleetWise シグナルカタログ](signal-catalogs.md)、[Manage AWS IoT FleetWise 車両](vehicles.md)、および[AWS IoT FleetWise でフリートを管理する](fleets.md)を参照してください。
キャンペーンが作成されたら、`UpdateCampaign` API オペレーションを使用してキャンペーンを承認する必要があります。詳細については、[AWS IoT FleetWise キャンペーンを更新する](update-campaign-cli.md)を参照してください。

キャンペーンを作成するには、次のコマンドを実行します。

*file-name* を、キャンペーン設定を含む .json ファイルの名前に置き換えます。

```
aws iotfleetwise create-campaign --cli-input-json file://file-name.json
```

#### S3 用の構成ファイルの例
<a name="example-configuration-file-s3"></a>
+ *campaign-name* は、作成するキャンペーンの名前に置き換えます。
+ *signal-catalog-arn* は、シグナルカタログの Amazon リソースネーム (ARN) に置き換えます。
+ *target-arn* は、作成したフリートまたは車両の ARN に置き換えます。
+ *bucket-arn* は、S3 バケットの ARN に置き換えます。

```
{
    "name": "campaign-name",
    "targetArn": "target-arn", 
    "signalCatalogArn": "signal-catalog-arn", 
    "collectionScheme": {
        "conditionBasedCollectionScheme": {
            "conditionLanguageVersion": 1,
            "expression": "$variable.`Vehicle.DemoBrakePedalPressure` > 7000",
            "minimumTriggerIntervalMs": 1000,
            "triggerMode": "ALWAYS"
        }
    },
    "compression": "SNAPPY",
    "diagnosticsMode": "OFF",
    "postTriggerCollectionDuration": 1000,
    "priority": 0,
    "signalsToCollect": [
        {
         "maxSampleCount": 100,
         "minimumSamplingIntervalMs": 0,
         "name": "Vehicle.DemoEngineTorque"
        },
        {
         "maxSampleCount": 100,
         "minimumSamplingIntervalMs": 0,
         "name": "Vehicle.DemoBrakePedalPressure"
        }
    ],
    "spoolingMode": "TO_DISK",
    "dataDestinationConfigs": [
        {
         "s3Config": { 
             "bucketArn": "bucket-arn",
             "dataFormat": "PARQUET",
             "prefix": "campaign-name",
              "storageCompressionFormat": "GZIP"
      }
    }
  ],
     "dataPartitions": [ 
      { ...  }
  ]
}
```

#### Timestream 用の構成ファイルの例
<a name="example-configuration-file-ts"></a>

**注記**  
Amazon Timestream は、アジアパシフィック (ムンバイ) リージョンでは利用できません。
+ *campaign-name* は、作成するキャンペーンの名前に置き換えます。
+ *signal-catalog-arn* は、シグナルカタログの ARN に置き換えます。
+ *target-arn* は、作成したフリートまたは車両の ARN に置き換えます。
+ *role-arn* を、Timestream テーブルにデータを配信するアクセス許可を AWS IoT FleetWise に付与するタスク実行ロールの ARN に置き換えます。
+ *table-arn* は、Timestream テーブルの ARN に置き換えます。

```
{
  "name": "campaign-name",
  "targetArn": "target-arn",
  "signalCatalogArn": "signal-catalog-arn",
  "collectionScheme": {
    "conditionBasedCollectionScheme": {
      "conditionLanguageVersion": 1,
      "expression": "$variable.`Vehicle.DemoBrakePedalPressure` > 7000",
      "minimumTriggerIntervalMs": 1000,
      "triggerMode": "ALWAYS"
    }
  },
  "compression": "SNAPPY",
  "diagnosticsMode": "OFF",
  "postTriggerCollectionDuration": 1000,
  "priority": 0,
  "signalsToCollect": [
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoEngineTorque"
    },
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoBrakePedalPressure"
    }
  ],
  "spoolingMode": "TO_DISK",
  "dataDestinationConfigs": [
    {
      "timestreamConfig": {
        "executionRoleArn": "role-arn",
        "timestreamTableArn": "table-arn"
      }
    }
  ],
   "dataPartitions": [ 
      { ...  }
  ]
}
```

#### MQTT トピックの設定ファイルの例
<a name="example-configuration-file-mqtt"></a>
+ *campaign-name* は、作成するキャンペーンの名前に置き換えます。
+ *signal-catalog-arn* は、シグナルカタログの Amazon リソースネーム (ARN) に置き換えます。
+ *target-arn* は、作成したフリートまたは車両の ARN に置き換えます。
+ *topic-arn* を、車両データを含むメッセージの宛先として指定した [MQTT トピック](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)の ARN に置き換えます。
+ *role-arn* を、指定した MQTT トピックのメッセージを送信、受信、および実行するアクセス許可を AWS IoT FleetWise に付与するタスク実行ロールの ARN に置き換えます。

```
{
  "name": "campaign-name",
  "targetArn": "target-arn",
  "signalCatalogArn": "signal-catalog-arn",
  "collectionScheme": {
    "conditionBasedCollectionScheme": {
      "conditionLanguageVersion": 1,
      "expression": "$variable.`Vehicle.DemoBrakePedalPressure` > 7000",
      "minimumTriggerIntervalMs": 1000,
      "triggerMode": "ALWAYS"
    }
  },
  "compression": "SNAPPY",
  "diagnosticsMode": "OFF",
  "postTriggerCollectionDuration": 1000,
  "priority": 0,
  "signalsToCollect": [
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoEngineTorque"
    },
    {
      "maxSampleCount": 100,
      "minimumSamplingIntervalMs": 0,
      "name": "Vehicle.DemoBrakePedalPressure"
    }
  ],
  "spoolingMode": "TO_DISK",
  "dataDestinationConfigs": [
      {
          "mqttTopicConfig": {
              "mqttTopicArn": "topic-arn",
              "executionRoleArn": "role-arn"
          }
      }
  ]
}
```

カスタマーマネージド AWS KMS キーを使用して[暗号化を有効に](key-management.md)した場合は、ロールが `CreateCampaign` API オペレーションを呼び出すことができるように、次のポリシーステートメントを含めます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# AWS IoT FleetWise キャンペーンの論理式
<a name="logical-expression"></a>

AWS IoT FleetWise は論理式を使用して、キャンペーンの一部として収集するデータを認識します。式の詳細については、「AWS IoT Events デベロッパーガイド」の「[式](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)」を参照してください。**

式変数は、収集するデータの種類に関する規則に準拠するように構成する必要があります。テレメトリーシステムデータの場合、式変数はシグナルの完全修飾名でなければなりません。ビジョンシステムデータの場合、式はシグナルの完全修飾名と、シグナルのデータ型からそのプロパティの 1 つに至るパスを組み合わせたものになります。

シグナルカタログに次のノードが含まれている場合の例:

```
{
    myVehicle.ADAS.Camera:
    type: sensor
    datatype: Vehicle.ADAS.CameraStruct
    description: "A camera sensor"

    myVehicle.ADAS.CameraStruct:
    type: struct
    description: "An obstacle detection camera output struct"
}
```

ノードが ROS 2 の定義に従っている場合の例: 

```
{
    Vehicle.ADAS.CameraStruct.msg:
    boolean obstaclesExists
    uint8[] image
    Obstacle[30] obstacles
}
{
    Vehicle.ADAS.Obstacle.msg:
    float32: probability
    uint8 o_type
    float32: distance
}
```

すべての可能なイベント式変数は以下のとおりです。

```
{
...
    $variable.`myVehicle.ADAS.Camera.obstaclesExists`
    $variable.`myVehicle.ADAS.Camera.Obstacle[0].probability`
    $variable.`myVehicle.ADAS.Camera.Obstacle[1].probability`
...
    $variable.`myVehicle.ADAS.Camera.Obstacle[29].probability`
    $variable.`myVehicle.ADAS.Camera.Obstacle[0].o_type`
    $variable.`myVehicle.ADAS.Camera.Obstacle[1].o_type`
...
    $variable.`myVehicle.ADAS.Camera.Obstacle[29].o_type`
    $variable.`myVehicle.ADAS.Camera.Obstacle[0].distance`
    $variable.`myVehicle.ADAS.Camera.Obstacle[1].distance`
...
    $variable.`myVehicle.ADAS.Camera.Obstacle[29].distance`
}
```