使用 AWS CLI 建立自訂任務範本 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS CLI 建立自訂任務範本

本主題說明如何使用 AWS CLI 建立、刪除和擷取任務範本的詳細資訊。

從頭建立任務範本

以下 AWS CLI 命令顯示如何使用存放在 S3 儲存貯體中的任務文件 (工作-文件 .json) 以及有權從 Amazon S3 (S3) 下載檔案的角色來建立任務。DownloadRole

aws iot create-job-template \ --job-template-id 010 \ --document-source https://s3.amazonaws.com/my-s3-bucket/job-document.json \ --timeout-config inProgressTimeoutInMinutes=100 \ --job-executions-rollout-config "{ \"exponentialRate\": { \"baseRatePerMinute\": 50, \"incrementFactor\": 2, \"rateIncreaseCriteria\": { \"numberOfNotifiedThings\": 1000, \"numberOfSucceededThings\": 1000}}, \"maximumPerMinute\": 1000}" \ --abort-config "{ \"criteriaList\": [ { \"action\": \"CANCEL\", \"failureType\": \"FAILED\", \"minNumberOfExecutedThings\": 100, \"thresholdPercentage\": 20}, { \"action\": \"CANCEL\", \"failureType\": \"TIMED_OUT\", \"minNumberOfExecutedThings\": 200, \"thresholdPercentage\": 50}]}" \ --presigned-url-config "{\"roleArn\":\"arn:aws:iam::123456789012:role/S3DownloadRole\", \"expiresInSec\":3600}"

選用的 timeout-config 參數會指定每個裝置必須完成任務執行的時間量。任務執行狀態設定為 IN_PROGRESS 時,計時器即會開始。在時間過期之前,如果任務執行狀態未設定為其他終止狀態,就會將其設定為 TIMED_OUT

進行中的計時器無法更新,並會套用到任務的所有任務啟動。每當工作啟動保持狀IN_PROGRESS態超過此間隔時間,工作啟動就會失敗,並切換到終端機TIMED_OUT狀態。 AWS IoT 同時也會發佈 MQTT 通知。

如需有關建立任務推展和中止組態的詳細資訊,請參閱任務推展和中止組態

注意

指定為 Amazon S3 檔案的任務文件會在您建立任務時擷取。如果您在建立任務後變更作為任務文件來源的 Amazon S3 檔案的內容,則傳送到任務目標的內容不會變更。

從現有任務建立任務範本

下列 AWS CLI 命令透過指定現有任務的 Amazon 資源名稱 (ARN) 來建立任務範本。新的任務範本會使用任務中指定的所有組態。您可以選擇性地使用任何選用參數,來變更現有任務中的任何組態。

aws iot create-job-template \ --job-arn arn:aws:iot:region:123456789012:job/job-name \ --timeout-config inProgressTimeoutInMinutes=100

取得任務範本的詳細資訊

下列 AWS CLI 命令會取得有關指定工作樣板的詳細資料。

aws iot describe-job-template \ --job-template-id template-id

該命令會顯示下列輸出。

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

列出任務範本

下列 AWS CLI 命令會列出您的所有工作樣板 AWS 帳戶。

aws iot list-job-templates

該命令會顯示下列輸出。

{ "jobTemplates": [ { "createdAt": number, "description": "string", "jobTemplateArn": "string", "jobTemplateId": "string" } ], "nextToken": "string" }

若要擷取其他結果頁面,請使用 nextToken 欄位的值。

刪除任務範本

下列 AWS CLI 命令會刪除指定的工作樣板。

aws iot delete-job-template \ --job-template-id template-id

此命令不會顯示輸出。

從自訂任務範本建立任務

下列 AWS CLI 指令會從自訂工作範本建立工作。它會將名為 thingOne 的裝置設為目標,並指定任務範本的 Amazon 資源名稱 (ARN),以用作任務的基礎。您可以覆寫進階組態,例如逾時和取消組態,方法是傳遞 create-job 命令的相關聯參數。

警告

從 AWS 受管範本建立任務時,document-parameters 物件只能與 create-job 命令搭配使用。這個對象不能與自訂任務範本搭配使用。如需示範如何使用這個參數建立任務的範例,請參閱 使用受管範本建立任務

aws iot create-job \ --targets arn:aws:iot:region:123456789012:thing/thingOne \ --job-template-arn arn:aws:iot:region:123456789012:jobtemplate/template-id