AWS IoT ジョブ API を使用して、ジョブ設定を指定します。 - AWS IoT Core

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

AWS IoT ジョブ API を使用して、ジョブ設定を指定します。

[CreateJob] (ジョブの作成) または[CreateJobTemplate] (ジョブテンプレートの作成) API を使用してさまざまなジョブ設定を指定できます。次のセクションでは、これらの設定を追加する方法について説明します。設定を追加後、[JobExecutionSummary] (ジョブ実行概要) および [JobExecutionSummaryForJob] (ジョブ用のジョブ実行概要) を使用して、そのステータスを表示します。

さまざまな設定とその動作の詳細については、「ジョブ設定の仕組み」を参照してください。

ロールアウト設定

ロールアウト設定には、一定のロールアウトレートまたは指数関数的なロールアウトレートを指定できます。

  • 一定のロールアウトレートを設定する

    一定のロールアウトレートを設定するには、JobExecutionsRolloutConfig オブジェクトを使用してmaximumPerMinute パラメータを CreateJob リクエストに追加します。このパラメータはジョブ実行が発生するレートの上限を指定します。この値はオプションで、1~1000 の範囲です。値を設定しないと、デフォルト値として 1000 が使用されます。

    "jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 }
  • 指数関数的なロールアウトレートを設定する

    可変ジョブロールアウトレートを設定するには、JobExecutionsRolloutConfig オブジェクトを使用します。CreateJob API オペレーション実行時の ExponentialRolloutRate プロパティを設定できます。次の例では、exponentialRate パラメータを使用して指数関数的ロールアウトレートを設定します。これらのパラメータの詳細については、ExponentialRolloutRate を参照してください。

    { ... "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 50, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 1000, "numberOfSucceededThings": 1000 }, "maximumPerMinute": 1000 } } ... }

パラメータが以下の場合 :

baseRatePerMinute

numberOfNotifiedThings または numberOfSucceededThings しきい値に達するまで、ジョブを実行するレートを指定します。

incrementFactor

numberOfNotifiedThings または numberOfSucceededThings しきい値に達した後にロールアウトレートを増加する指数係数を指定します。

rateIncreaseCriteria

numberOfNotifiedThings または numberOfSucceededThings しきい値のいずれかを指定します。

中止設定

API を使用してこの設定を追加するには、CreateJob または CreateJobTemplate API オペレーションを実行するときの AbortConfig パラメータを指定します。次の例は、CreateJob API オペレーションで指定された複数回失敗した実行のジョブロールアウトに対する中止設定を示しています。

注記

ジョブ実行を削除すると、完了した実行の合計数の計算値に影響します。ジョブを中止するとき、サービスは自動で commentreasonCode を作成し、ジョブ中止のキャンセルとユーザーによるキャンセルを区別します。

"abortConfig": { "criteriaList": [ { "action": "CANCEL", "failureType": "FAILED", "minNumberOfExecutedThings": 100, "thresholdPercentage": 20 }, { "action": "CANCEL", "failureType": "TIMED_OUT", "minNumberOfExecutedThings": 200, "thresholdPercentage": 50 } ] }

パラメータが以下の場合 :

アクション

中止基準が満たされたときに実行するアクションを指定します。このパラメータは必須であり、CANCEL が唯一の有効な値です。

failureType

ジョブの中止を開始する失敗の種類を指定します。有効な値は、FAILEDREJECTEDTIMED_OUT、および ALL です。

minNumberOfExecutedThings

ジョブ中止基準が満たされる前に、完了が必要なジョブの数を指定します。この例では、AWS IoT は、ジョブ実行が完了しているデバイスが少なくとも 100 個になるまで、ジョブ中止が必要かどうかをチェックしません。

thresholdPercentage

ジョブ中止を開始する、ジョブが実行されたモノの合計数を指定します。この例では、AWS IoT は順番にチェックし、しきい値の割合が満たされた場合にジョブ中止を開始します。100 回の実行が完了した後に完了した実行の 20% 以上が失敗した場合、ジョブのロールアウトはキャンセルされます。この基準が満たされない場合、AWS IoT は、200 回の実行が完了した後に完了した実行の 50% 以上がタイムアウトしたかどうかを確認します。この場合、ジョブのロールアウトがキャンセルされます。

スケジューリング設定

API を使用してこの設定を追加するには、CreateJob または CreateJobTemplate API オペレーションを実行する際にオプションの SchedulingConfig を指定します。

"SchedulingConfig": { "endBehavior": string "endTime": string "maintenanceWindows": string "startTime": string }

パラメータが以下の場合 :

startTime

ジョブを開始する日時を指定します。

endTime

ジョブを終了する日時を指定します。

maintenanceWindows

対象グループ内のすべてのデバイスに対し、ジョブドキュメントのロールアウトスケジュールジョブに、オプションのメンテナンスウィンドウが選択されていた場合に指定します。maintenanceWindow の文字列形式は、日付は YYYY/MM/DD、時刻は hh:mm です。

endBehavior

スケジュールされたジョブが endTime に達したときのジョブの動作を指定します。

注記

ジョブのオプション SchedulingConfig は、DescribeJob および DescribeJobTemplate API で表示できます。

タイムアウト設定

API を使用してこの設定を追加するには、CreateJob または CreateJobTemplate API オペレーションを実行するときの TimeoutConfig パラメータを指定します。

タイムアウト設定を使用するには

  1. ジョブまたはジョブテンプレートの作成時に進捗タイマーを設定するには、オプションの TimeoutConfig オブジェクトの inProgressTimeoutInMinutes プロパティの値を設定します。

    "timeoutConfig": { "inProgressTimeoutInMinutes": number }
  2. ジョブ実行のステップタイマーを設定するには、UpdateJobExecution を呼び出すときの stepTimeoutInMinutesの値を設定します。ステップタイマーは更新するジョブ実行にのみ適用されます。ジョブの実行を更新するたびに、このタイマーに新しい値を設定できます。

    注記

    UpdateJobExecution は、値 -1 の新しいステップタイマーを作成することで、すでに作成されたステップタイマーを破棄できます。

    { ... "statusDetails": { "string" : "string" }, "stepTimeoutInMinutes": number }
  3. 新しいステップタイマーを作成するには、StartNextPendingJobExecution API オペレーションを呼び出すこともできます。

再試行設定

注記

ジョブを作成するときは、設定に使用する適切な再試行回数を考慮してください。再試行失敗の可能性による過剰なコストが発生しないようにするには、中止設定を追加します。ジョブの作成後は、再試行回数は更新できません。UpdateJob API オペレーションを使用する場合、再試行回数は 0 のみに設定できます。

API を使用してこの設定を追加するには、CreateJob または CreateJobTemplate API オペレーションを実行するときの jobExecutionsRetryConfig パラメータを指定します。

{ ... "jobExecutionsRetryConfig": { "criteriaList": [ { "failureType": "string", "numberOfRetries": number } ] } ... }

criteriaList は、ジョブの失敗タイプごとに許可される再試行回数を決定する基準のリストを指定する配列です。