ジョブ管理と制御のデータ型 - AWS IoT Core

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

ジョブ管理と制御のデータ型

次のコマンドは、CLI または HTTPS プロトコルを介してジョブの管理および制御で使用できます。

CLI コマンドの endpoint-url パラメータを特定するには、次のコマンドを実行します。

aws iot describe-endpoint --endpoint-type=iot:Jobs

このコマンドは、次の出力を返します。

{ "endpointAddress": "account-specific-prefix.jobs.iot.aws-region.amazonaws.com" }
注記

ジョブエンドポイントは ALPN z-amzn-http-ca をサポートしていません。

ジョブ管理と制御のデータ型

以下のデータ型は、管理アプリケーションと制御アプリケーションが AWS IoT ジョブと通信するために使用します。

Job オブジェクトにはジョブの詳細が含まれています。以下に構文例を示します。

{ "jobArn": "string", "jobId": "string", "status": "IN_PROGRESS|CANCELED|SUCCEEDED", "forceCanceled": boolean, "targetSelection": "CONTINUOUS|SNAPSHOT", "comment": "string", "targets": ["string"], "description": "string", "createdAt": timestamp, "lastUpdatedAt": timestamp, "completedAt": timestamp, "jobProcessDetails": { "processingTargets": ["string"], "numberOfCanceledThings": long, "numberOfSucceededThings": long, "numberOfFailedThings": long, "numberOfRejectedThings": long, "numberOfQueuedThings": long, "numberOfInProgressThings": long, "numberOfRemovedThings": long, "numberOfTimedOutThings": long }, "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "SchedulingConfig": { "startTime": string "endTime": string "timeZone": string "endTimeBehavior": string }, "timeoutConfig": { "inProgressTimeoutInMinutes": long } }

詳細については、「Job」または「job」を参照してください。

JobSummary オブジェクトにはジョブの概要が含まれています。以下に構文例を示します。

{ "jobArn": "string", "jobId": "string", "status": "IN_PROGRESS|CANCELED|SUCCEEDED|SCHEDULED", "targetSelection": "CONTINUOUS|SNAPSHOT", "thingGroupId": "string", "createdAt": timestamp, "lastUpdatedAt": timestamp, "completedAt": timestamp }

詳細については、「JobSummary」または「job-summary」を参照してください。

JobExecution オブジェクトは、デバイスでのジョブの実行を表します。以下に構文例を示します。

注記

コントロールプレーン API オペレーションを使用する場合、JobExecution データ型には JobDocument フィールドが含まれません。この情報を取得するには、GetJobDocument API オペレーションまたは get-job-document CLI コマンドを使用できます。

{ "approximateSecondsBeforeTimedOut": 50, "executionNumber": 1234567890, "forceCanceled": true|false, "jobId": "string", "lastUpdatedAt": timestamp, "queuedAt": timestamp, "startedAt": timestamp, "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED", "forceCanceled": boolean, "statusDetails": { "detailsMap": { "string": "string" ... }, "status": "string" }, "thingArn": "string", "versionNumber": 123 }

詳細については、「JobExecution」または「job-execution」を参照してください。

JobExecutionSummary オブジェクトには、ジョブ実行の概要情報が含まれています。以下に構文例を示します。

{ "executionNumber": 1234567890, "queuedAt": timestamp, "lastUpdatedAt": timestamp, "startedAt": timestamp, "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED" }

詳細については、「JobExecutionSummary」または「job-execution-summary」を参照してください。

JobExecutionSummaryForJob オブジェクトには、特定のジョブのジョブ実行に関する情報の概要が含まれています。以下に構文例を示します。

{ "executionSummaries": [ { "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyThing", "jobExecutionSummary": { "status": "IN_PROGRESS", "lastUpdatedAt": 1549395301.389, "queuedAt": 1541526002.609, "executionNumber": 1 } }, ... ] }

詳細については、「JobExecutionSummaryForJob」または「job-execution-summary-for-job」を参照してください。

JobExecutionSummaryForThing オブジェクトには、特定のモノのジョブ実行に関する情報の概要が含まれています。以下に構文例を示します。

{ "executionSummaries": [ { "jobExecutionSummary": { "status": "IN_PROGRESS", "lastUpdatedAt": 1549395301.389, "queuedAt": 1541526002.609, "executionNumber": 1 }, "jobId": "MyThingJob" }, ... ] }

詳細については、「JobExecutionSummaryForThing」または「job-execution-summary-for-thing」を参照してください。

ジョブ管理と制御の API オペレーション

次の API オペレーションまたは CLI コマンドを使用します。

グループを連続ジョブに関連付けます。以下の条件を満たす必要があります。

  • ジョブは、targetSelection フィールドを CONTINUOUS に設定して作成しておく必要があります。

  • ジョブのステータスは、現在 IN_PROGRESS です。

  • ジョブに関連付けられたターゲットの合計数が 100 を超えることはできません。

HTTPS request
POST /jobs/jobId/targets { "targets": [ "string" ], "comment": "string" }

詳細については、「AssociateTargetsWithJob」を参照してください。

CLI syntax
aws iot associate-targets-with-job \ --targets <value> \ --job-id <value> \ [--comment <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "targets": [ "string" ], "jobId": "string", "comment": "string" }

詳細については、「associate-targets-with-job」を参照してください。

ジョブをキャンセルします。

HTTPS request
PUT /jobs/jobId/cancel { "force": boolean, "comment": "string", "reasonCode": "string" }

詳細については、「CancelJob」を参照してください。

CLI syntax
aws iot cancel-job \ --job-id <value> \ [--force <value>] \ [--comment <value>] \ [--reasonCode <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "force": boolean, "comment": "string" }

詳細については、「cancel-job」を参照してください。

デバイスでジョブ実行をキャンセルする。

HTTPS request
PUT /things/thingName/jobs/jobId/cancel { "force": boolean, "expectedVersion": "string", "statusDetails": { "string": "string" ... } }

詳細については、「CancelJobExecution」を参照してください。

CLI syntax
aws iot cancel-job-execution \ --job-id <value> \ --thing-name <value> \ [--force | --no-force] \ [--expected-version <value>] \ [--status-details <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "thingName": "string", "force": boolean, "expectedVersion": long, "statusDetails": { "string": "string" } }

詳細については、「cancel-job-execution」を参照してください。

ジョブを作成します。 ジョブドキュメントは、Amazon S3 バケット (documentSource パラメータ) またはリクエストの本文 (document パラメータ) のファイルへのリンクとして提供できます。

オプションの targetSelection パラメータを CONTINUOUS に設定することで、ジョブを連続にすることができます (デフォルトは SNAPSHOT)。連続ジョブは実行され続け、新規追加されたモノで起動するため、連続ジョブを使用して、グループに追加されたデバイスをオンボードまたはアップグレードできます。これは、ジョブ作成時点のグループ内のモノがジョブを完了した後でも発生する可能性があります。

ジョブでは、オプションの TimeoutConfig に進捗タイマーの値を設定できます。進捗タイマーは更新できず、ジョブのすべての実行に適用されます。

CreateJob API の引数に対して、次の検証が実行されます。

  • targets 引数は、有効なモノまたはモノのグループの ARN のリストでなければなりません。すべてのモノとモノのグループは、AWS アカウント にある必要があります。

  • documentSource 引数は、ジョブドキュメント有効な Amazon S3 URL である必要があります。 Amazon S3 URL は https://s3.amazonaws.com/bucketName/objectName という形式です。

  • documentSource 引数で指定された URL に格納されているドキュメントは、UTF-8 でエンコードされた JSON ドキュメントである必要があります。

  • ジョブドキュメントのサイズは、MQTT メッセージのサイズ (128 KB) と暗号化の制限から、32 KB に制限されています。

  • jobId は、AWS アカウント 内で一意である必要があります。

HTTPS request
PUT /jobs/jobId { "targets": [ "string" ], "document": "string", "documentSource": "string", "description": "string", "jobTemplateArn": "string", "presignedUrlConfigData": { "roleArn": "string", "expiresInSec": "integer" }, "targetSelection": "CONTINUOUS|SNAPSHOT", "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "SchedulingConfig": { "startTime": string "endTime": string "timeZone": string "endTimeBehavior": string } "timeoutConfig": { "inProgressTimeoutInMinutes": long } }

詳細については、「CreateJob」を参照してください。

CLI syntax
aws iot create-job \ --job-id <value> \ --targets <value> \ [--document-source <value>] \ [--document <value>] \ [--description <value>] \ [--job-template-arn <value>] \ [--presigned-url-config <value>] \ [--target-selection <value>] \ [--job-executions-rollout-config <value>] \ [--abort-config <value>] \ [--timeout-config <value>] \ [--document-parameters <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "targets": [ "string" ], "documentSource": "string", "document": "string", "description": "string", "jobTemplateArn": "string", "presignedUrlConfig": { "roleArn": "string", "expiresInSec": long }, "targetSelection": "string", "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "timeoutConfig": { "inProgressTimeoutInMinutes": long }, "documentParameters": { "string": "string" } }

詳細については、「create-job」を参照してください。

ジョブおよびそれに関連するジョブの実行を削除します。

ジョブに作成されたジョブ実行の数およびその他さまざまな要素に応じて、ジョブの削除には時間がかかる場合があります。ジョブの削除中、そのジョブのステータスは「DELETION_IN_PROGRESS」として表示されます。ステータスがすでに「DELETION_IN_PROGRESS」のジョブを削除あるいはキャンセルしようとすると、エラーになります。

HTTPS request
DELETE /jobs/jobId?force=force

詳細については、「DeleteJob」を参照してください。

CLI syntax
aws iot delete-job \ --job-id <value> \ [--force | --no-force] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "force": boolean }

詳細については、「delete-job」を参照してください。

ジョブの実行を削除します。

HTTPS request
DELETE /things/thingName/jobs/jobId/executionNumber/executionNumber?force=force

詳細については、「DeleteJobExecution」を参照してください。

CLI syntax
aws iot delete-job-execution \ --job-id <value> \ --thing-name <value> \ --execution-number <value> \ [--force | --no-force] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "thingName": "string", "executionNumber": long, "force": boolean }

詳細については、「delete-job-execution」を参照してください。

ジョブ実行の詳細を取得します。

HTTPS request
GET /jobs/jobId

詳細については、「DescribeJob」を参照してください。

CLI syntax
aws iot describe-job \ --job-id <value> \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string" }

詳細については、「describe-job」を参照してください。

ジョブ実行の詳細を取得します。ジョブの実行ステータスは、SUCCEEDED または FAILED である必要があります。

HTTPS request
GET /things/thingName/jobs/jobId?executionNumber=executionNumber

詳細については、「DescribeJobExecution」を参照してください。

CLI syntax
aws iot describe-job-execution \ --job-id <value> \ --thing-name <value> \ [--execution-number <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "thingName": "string", "executionNumber": long }

詳細については、「describe-job-execution」を参照してください。

ジョブのジョブドキュメントを取得します。

注記

プレースホルダーの URL は、返されたドキュメントの署名付き Amazon S3 URL に置き換えられません。署名付き URL は、AWS IoT ジョブサービスが MQTT を介して要求を受け取った場合にのみ生成されます。

HTTPS request
GET /jobs/jobId/job-document

詳細については、「GetJobDocument」を参照してください。

CLI syntax
aws iot get-job-document \ --job-id <value> \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string" }

詳細については、「get-job-document」を参照してください。

ジョブのジョブ実行リストを取得します。

HTTPS request
GET /jobs/jobId/things?status=status&maxResults=maxResults&nextToken=nextToken

詳細については、「ListJobExecutionsForJob」を参照してください。

CLI syntax
aws iot list-job-executions-for-job \ --job-id <value> \ [--status <value>] \ [--max-results <value>] \ [--next-token <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "jobId": "string", "status": "string", "maxResults": "integer", "nextToken": "string" }

詳細については、「list-job-executions-for-job」を参照してください。

モノのジョブ実行リストを取得します。

HTTPS request
GET /things/thingName/jobs?status=status&maxResults=maxResults&nextToken=nextToken

詳細については、「ListJobExecutionsForThing」を参照してください。

CLI syntax
aws iot list-job-executions-for-thing \ --thing-name <value> \ [--status <value>] \ [--max-results <value>] \ [--next-token <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "thingName": "string", "status": "string", "maxResults": "integer", "nextToken": "string" }

詳細については、「list-job-executions-for-thing」を参照してください。

AWS アカウント のジョブのリストを取得します。

HTTPS request
GET /jobs?status=status&targetSelection=targetSelection&thingGroupName=thingGroupName&thingGroupId=thingGroupId&maxResults=maxResults&nextToken=nextToken

詳細については、「ListJobs」を参照してください。

CLI syntax
aws iot list-jobs \ [--status <value>] \ [--target-selection <value>] \ [--max-results <value>] \ [--next-token <value>] \ [--thing-group-name <value>] \ [--thing-group-id <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "status": "string", "targetSelection": "string", "maxResults": "integer", "nextToken": "string", "thingGroupName": "string", "thingGroupId": "string" }

詳細については、「list-jobs」を参照してください。

指定されたジョブのサポート対象フィールドを更新する。timeoutConfig の更新された値は、新しく進行中の起動に対してのみ有効になります。現在、進行中の起動は、以前のタイムアウト設定で引き続き起動します。

HTTPS request
PATCH /jobs/jobId { "description": "string", "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": number, "incrementFactor": number, "rateIncreaseCriteria": { "numberOfNotifiedThings": number, "numberOfSucceededThings": number }, "maximumPerMinute": number }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": number, "thresholdPercentage": number } ] }, "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

詳細については、「UpdateJob」を参照してください。

CLI syntax
aws iot update-job \ --job-id <value> \ [--description <value>] \ [--presigned-url-config <value>] \ [--job-executions-rollout-config <value>] \ [--abort-config <value>] \ [--timeout-config <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 形式:

{ "description": "string", "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": number, "incrementFactor": number, "rateIncreaseCriteria": { "numberOfNotifiedThings": number, "numberOfSucceededThings": number } }, "maximumPerMinute": number }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": number, "thresholdPercentage": number } ] }, "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

詳細については、「update-job」を参照してください。