

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

# ジョブの主要な概念
<a name="key-concepts-jobs"></a>

以下の概念では、 AWS IoT ジョブの詳細と、 デバイスでリモートオペレーションを実行するための ジョブを作成してデプロイする方法について説明します。

## 基本概念
<a name="basic-concepts-jobs"></a>

 AWS IoT ジョブを使用する際に知っておくべき基本概念を次に示します。

**ジョブ**  
ジョブは、 AWS IoTに接続された 1 つ以上のデバイスに送信され実行されるリモート操作です。例えば、一連のデバイスに対して、アプリケーションのダウンロードとインストール、ファームウェア更新の実行、再起動、証明書のローテーション、またはリモートトラブルシューティングオペレーションの実行を指示するジョブを定義できます。

**ジョブドキュメント**  
ジョブを作成するには、デバイスによって実行されるリモートオペレーションの説明であるジョブドキュメントを最初に作成する必要があります。  
ジョブドキュメントは、UTF-8 でエンコードされた JSON ドキュメントであり、デバイスがジョブを実行するために必要な情報を含みます。ジョブドキュメントには、デバイスが更新やその他のデータをダウンロードできる URL が 1 つ以上含まれています。ジョブドキュメントは、Amazon S3 バケットに格納することも、ジョブを作成するコマンドにインラインで含めることもできます。  
MQTT レスポンスでは、`jobDocument` フィールドは JSON オブジェクトです。HTTP レスポンスの場合は、JSON オブジェクトの文字列表現です。

**ターゲット**  
ジョブを作成するとき、オペレーションを実行する必要があるデバイスであるターゲットのリストを指定します。ターゲットはモノ、[モノのグループ](thing-groups.md)、またはその両方にすることができます。 AWS IoT Jobs サービスは各ターゲットにメッセージを送信し、ジョブが利用可能であることを通知します。

**デプロイメント**  
ジョブドキュメントを指定し、ターゲットのリストを指定してジョブを作成した後、ジョブドキュメントは、更新を実行するリモートターゲットデバイスにデプロイされます。スナップショットジョブでは、ジョブは、ターゲットデバイスにデプロイした後に完了します。連続ジョブでは、ジョブは、グループに追加されたデバイスのグループにデプロイされます。

**ジョブの実行**  
ジョブの実行は、ターゲットデバイスでのジョブのインスタンスです。ターゲットは、ジョブのドキュメントをダウンロードしてジョブの実行を開始します。次に、ドキュメントで指定されたオペレーションを実行し、その進行状況を に報告します AWS IoT。実行番号は、特定のターゲットでのジョブ実行の一意の識別子です。 AWS IoT Jobs サービスは、ターゲットでのジョブ実行の進行状況と、すべてのターゲットでのジョブの進行状況を追跡するコマンドを提供します。

## ジョブタイプの概念
<a name="advanced-concepts-jobs"></a>

以下の概念は、 ジョブで作成できるさまざまなタイプの AWS IoT ジョブについて理解を深めるのに役立ちます。

**スナップショットジョブ**  
デフォルトでは、ジョブの作成時に指定したすべてのターゲットにジョブが送信されます。それらのターゲットがジョブを完了した後 (または完了できないと報告した場合)、ジョブは完了となります。

**連続ジョブ**  
ジョブの作成時に指定したすべてのターゲットにジョブが送信されます。引き続き実行され、ターゲットグループに追加された新しいデバイス (モノなど) に送信されます。例えば、連続ジョブを使用して、グループに追加されたデバイスをオンボードまたはアップグレードできます。ジョブを作成するときにオプションのパラメータを設定することにより、連続ジョブを作成することができます。  
モノの動的グループを使用して IoT フリートをターゲットにする場合、スナップショットジョブではなく、連続ジョブを使用することをお勧めします。連続ジョブを使用すると、グループに参加しているデバイスは、ジョブが作成された後でもジョブの実行を受け取ります。

## 署名付き URL
<a name="security-concepts-jobs"></a><a name="presigned"></a>

ジョブドキュメントに含まれないデータへのアクセスのセキュリティを確保し、時間制限を付けるには、署名付き Amazon S3 URL を使用できます。データを Amazon S3 バケットに配置し、ジョブドキュメント内のデータにプレースホルダーリンクを追加することができます。 AWS IoT ジョブは、ジョブドキュメントのリクエストを受け取ると、プレースホルダーリンクを検索してジョブドキュメントを解析し、リンクを署名付き Amazon S3 URL URLs。

プレースホルダーリンクの形式は次のとおりです。

```
${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
```

ここで、*バケット* はバケット名で､*キー*はリンク先のバケット内のオブジェクトです。

北京および寧夏リージョンでは、署名付き URL は、リソース所有者が ICP (Internet Content Provider) ライセンスを持っている場合にのみ機能します。詳細については、「中国のサービスの開始方法」ドキュメントの[「Amazon Simple Storage Service](https://docs.amazonaws.cn/en_us/aws/latest/userguide/s3.html)」を参照してください。 * AWS *

## ジョブ設定の概念
<a name="advanced-concepts-jobs"></a>

次の概念は、ジョブの設定方法を理解するのに役立ちます。

**ロールアウト**  
保留中のジョブの実行がターゲットに通知される速度を指定できます。これにより、ステージングされたロールアウトを作成し、更新、再起動、その他のオペレーションをよりよく管理できます。静的ロールアウトレートまたは指数関数的ロールアウトレートを使用して、ロールアウト設定を作成できます。1 分あたりに通知するジョブターゲットの最大数を指定するには、静的ロールアウトレートを使用します。  
ロールアウトレート設定の例とジョブロールアウトの設定の詳細については、「[ジョブのロールアウト、スケジュール、中止の設定](jobs-configurations-details.md#job-rollout-abort-scheduling)」を参照してください。

**スケジューリング**  
ジョブのスケジューリングにより、ターゲットグループ内のすべてのデバイスへのジョブドキュメントのロールアウト期間を、連続ジョブとスナップショットジョブ用にスケジューリングできます。さらに、オプションのメンテナンスウィンドウを作成して、ジョブがターゲットグループ内のすべてのデバイスへのジョブドキュメントのロールアウトを行う特定の日付と時刻を含めることができます。メンテナンスウィンドウとは、最初のジョブあるいはジョブテンプレートの作成時に選択した、日次、週次、月次、またはカスタムの日付と時刻の頻度で繰り返されるインスタンスです。メンテナンスウィンドウ中にロールアウトを実行するようにスケジュールできるのは、連続ジョブのみです。  
ジョブスケジューリングはジョブによって異なります。個々のジョブの実行をスケジューリングすることはできません。詳細については、「[ジョブのロールアウト、スケジュール、中止の設定](jobs-configurations-details.md#job-rollout-abort-scheduling)」を参照してください。

**中止**  
指定した基準が満たされたときにロールアウトを中止する一連の条件を作成できます。詳細については、「[ジョブのロールアウト、スケジュール、中止の設定](jobs-configurations-details.md#job-rollout-abort-scheduling)」を参照してください。

** タイムアウト**  
ジョブタイムアウトは、予期せず長時間ジョブのデプロイが `IN_PROGRESS` 状態になったときに通知します。タイマーには、進捗タイマーとステップタイマーの 2 種類があります。ジョブが `IN_PROGRESS` のとき、ジョブデプロイの進行状況をモニタリングして追跡できます。  
ロールアウトおよび中止の設定はジョブに固有ですが、タイムアウト設定はジョブのデプロイに固有です。詳細については、「[ジョブ実行タイムアウト設定と再試行の設定](jobs-configurations-details.md#job-timeout-retry)」を参照してください。

** 再試行**  
ジョブ再試行により、ジョブが失敗したり、タイムアウトになったり、その両方になった場合、ジョブの実行を再試行できます。ジョブの実行は、最大 10 回まで再試行できます。再試行の進行状況、およびジョブ実行が成功したかどうかをモニタリングして追跡できます。  
ロールアウトおよび中止の設定はジョブに固有ですが、タイムアウト設定と再試行設定はジョブの実行に固有です。詳細については、「[ジョブ実行タイムアウト設定と再試行の設定](jobs-configurations-details.md#job-timeout-retry)」を参照してください。