ジョブの主要な概念 - AWS IoT Core

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

ジョブの主要な概念

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

基本概念

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

ジョブ

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

ジョブドキュメント

ジョブを作成するには、デバイスによって実行されるリモートオペレーションの説明であるジョブドキュメントを最初に作成する必要があります。

ジョブドキュメントは、UTF-8 でエンコードされた JSON ドキュメントであり、デバイスがジョブを実行するために必要な情報を含みます。ジョブドキュメントには、デバイスが更新やその他のデータをダウンロードできる URL が 1 つ以上含まれています。ジョブドキュメントは、Amazon S3 バケットに格納することも、ジョブを作成するコマンドにインラインで含めることもできます。

ヒント

ジョブドキュメントの例については、 AWS IoT SDK for の jobs-agent.js の例を参照してください JavaScript。

[Target] (ターゲット)

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

デプロイメント

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

ジョブの実行

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

ジョブタイプの概念

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

スナップショットジョブ

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

連続ジョブ

ジョブの作成時に指定したすべてのターゲットにジョブが送信されます。引き続き実行され、ターゲットグループに追加された新しいデバイス (モノなど) に送信されます。例えば、連続ジョブを使用して、グループに追加されたデバイスをオンボードまたはアップグレードできます。ジョブを作成するときにオプションのパラメータを設定することにより、連続ジョブを作成することができます。

注記

モノの動的グループを使用して IoT フリートをターゲットにする場合、スナップショットジョブではなく、連続ジョブを使用することをお勧めします。連続ジョブを使用すると、グループに参加しているデバイスは、ジョブが作成された後でもジョブの実行を受け取ります。

署名付き URL

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

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

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

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

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

ジョブ設定の概念

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

ロールアウト

保留中のジョブの実行がターゲットに通知される速度を指定できます。これにより、ステージングされたロールアウトを作成し、更新、再起動、その他のオペレーションをよりよく管理できます。静的ロールアウトレートまたは指数関数的ロールアウトレートを使用して、ロールアウト設定を作成できます。1 分あたりに通知するジョブターゲットの最大数を指定するには、静的ロールアウトレートを使用します。

ロールアウトレート設定の例とジョブロールアウトの設定の詳細については、「ジョブのロールアウト、スケジュール、中止の設定」を参照してください。

スケジューリング

ジョブのスケジューリングにより、ターゲットグループ内のすべてのデバイスへのジョブドキュメントのロールアウト期間を、連続ジョブとスナップショットジョブ用にスケジューリングできます。さらに、オプションのメンテナンスウィンドウを作成して、ジョブがターゲットグループ内のすべてのデバイスへのジョブドキュメントのロールアウトを行う特定の日付と時刻を含めることができます。メンテナンスウィンドウとは、最初のジョブあるいはジョブテンプレートの作成時に選択した、日次、週次、月次、またはカスタムの日付と時刻の頻度で繰り返されるインスタンスです。メンテナンスウィンドウ中にロールアウトを実行するようにスケジュールできるのは、連続ジョブのみです。

ジョブスケジューリングはジョブによって異なります。個々のジョブの実行をスケジューリングすることはできません。詳細については、「ジョブのロールアウト、スケジュール、中止の設定」を参照してください。

中止

指定した基準が満たされたときにロールアウトを中止する一連の条件を作成できます。詳細については、「ジョブのロールアウト、スケジュール、中止の設定」を参照してください。

タイムアウト

ジョブタイムアウトは、予期せず長時間ジョブのデプロイが IN_PROGRESS 状態になったときに通知します。タイマーには、進捗タイマーとステップタイマーの 2 種類があります。ジョブが IN_PROGRESS のとき、ジョブデプロイの進行状況をモニタリングして追跡できます。

ロールアウトおよび中止の設定はジョブに固有ですが、タイムアウト設定はジョブのデプロイに固有です。詳細については、「ジョブ実行タイムアウト設定と再試行の設定」を参照してください。

再試行

ジョブ再試行により、ジョブが失敗したり、タイムアウトになったり、その両方になった場合、ジョブの実行を再試行できます。ジョブの実行は、最大 10 回まで再試行できます。再試行の進行状況、およびジョブ実行が成功したかどうかをモニタリングして追跡できます。

ロールアウトおよび中止の設定はジョブに固有ですが、タイムアウト設定と再試行設定はジョブの実行に固有です。詳細については、「ジョブ実行タイムアウト設定と再試行の設定」を参照してください。