Impostazione delle configurazioni del processo utilizzando l'API di AWS IoT Jobs - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione delle configurazioni del processo utilizzando l'API di AWS IoT Jobs

È possibile utilizzare l'API CreateJobo l'CreateJobTemplateAPI per specificare le diverse configurazioni di lavoro. Le sezioni seguenti descrivono come aggiungere queste configurazioni. Dopo aver aggiunto le configurazioni, puoi utilizzarle JobExecutionSummarye JobExecutionSummaryForJobvisualizzarne lo stato.

Per ulteriori informazioni sulle diverse configurazioni e su come funzionano, consulta Come funzionano le configurazioni di processo.

Rollout configuration (Configurazione rollout)

Per la configurazione di velocità puoi specificare una velocità di rollout costante o esponenziale.

  • Impostazione di una velocità di rollout costante

    Per impostare una velocità di rollout costante, utilizza l'oggetto JobExecutionsRolloutConfig per aggiungere il parametro maximumPerMinute alla richiesta CreateJob. Questo parametro specifica il limite superiore della velocità alla quale possono verificarsi le esecuzioni dei processi. Questo valore è facoltativo e varia da 1 a 1.000. Se non lo imposti, viene utilizzato 1.000 come valore predefinito.

    "jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 }
  • Impostazione di una velocità di rollout esponenziale

    Per impostare una velocità di rollout del processo variabile, utilizza l'oggetto JobExecutionsRolloutConfig. Puoi configurare la proprietà ExponentialRolloutRate quando esegui l'operazione API CreateJob. L'esempio seguente imposta una velocità di rollout esponenziale utilizzando il parametro exponentialRate. Per ulteriori informazioni sui parametri, consulta ExponentialRolloutRate.

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

Dove il parametro:

baseRatePerMinuto

Specifica la velocità alla quale i processi vengono eseguiti fino a quando non viene raggiunta la soglia di numberOfNotifiedThings o numberOfSucceededThings.

incrementFactor

Specifica il fattore esponenziale con il quale la velocità di rollout aumenta dopo che è stata raggiunta la soglia di numberOfNotifiedThings o numberOfSucceededThings.

rateIncreaseCriteria

Specifica la soglia di numberOfNotifiedThings o numberOfSucceededThings.

Abort configuration (Configurazione dell'interruzione)

Per aggiungere questa configurazione utilizzando l'API, specifica il parametro AbortConfig quando esegui CreateJob o l’operazione API CreateJobTemplate. L'esempio seguente mostra una configurazione di interruzione per il rollout di un processo in cui si verificano più esecuzioni fallite, come specificato con l'operazione API CreateJob.

Nota

L'eliminazione dell'esecuzione di un processo influisce sul valore del calcolo dell'esecuzione totale completata. Quando un processo viene interrotto, il servizio crea codici comment e reasonCode automaticamente per differenziare una cancellazione dipendente dall'utente o una cancellazione per interruzione di processo.

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

Dove il parametro:

action

Specifica l'operazione da eseguire quando vengono soddisfatti i criteri di interruzione. Questo parametro è obbligatorio ed CANCEL è il solo valore valido.

failureType

Specifica i tipi di errore che devono avviare l'interruzione di un processo. I valori validi sono FAILED, REJECTED, TIMED_OUT e ALL.

minNumberOfExecutedThings

Specifica il numero di esecuzioni del processo completate che devono verificarsi prima che il criterio di interruzione del processo sia soddisfatto. In questo esempio, AWS IoT non verifica se un'interruzione di processo si verifica quando almeno 100 dispositivi hanno completato le esecuzioni di processo.

thresholdPercentage

Specifica il numero totale di oggetti per i quali i processi sono stati eseguiti che avvia l'interruzione del processo. In questo esempio, AWS IoT verifica in sequenza e avvia un'interruzione del lavoro se viene raggiunta la percentuale di soglia. Se almeno il 20% delle esecuzioni complete non è riuscito dopo il completamento di 100 esecuzioni, annulla il rollout del processo. Se questo criterio non AWS IoT viene soddisfatto, verifica se almeno il 50% delle esecuzioni completate è scaduto dopo il completamento di 200 esecuzioni. In questo caso, annulla il rollout del processo.

Scheduling configuration (Configurazione della pianificazione)

Per aggiungere questa configurazione utilizzando l'API, specifica il parametro SchedulingConfig opzionale quando esegui CreateJob o l’operazione API CreateJobTemplate.

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

Dove il parametro:

startTime

Specifica la data e l'ora di avvio del processo.

endTime

Specifica la data e l'ora di fine del processo.

maintenanceWindows

Specifica se è stata selezionata una finestra di manutenzione opzionale per il processo pianificato di distribuzione del documento del processo in tutti i dispositivi del gruppo di destinazione. Il formato della stringa per maintenanceWindow è AAAA/MM/GG per la data e hh:mm per l'ora.

endBehavior

Specifica il comportamento del processo per un processo pianificato al raggiungimento di endTime.

Nota

Il parametro SchedulingConfig opzionale per un processo è visualizzabile nelle API DescribeJob e DescribeJobTemplate.

Configurazione del timeout

Per aggiungere questa configurazione utilizzando l'API, specifica il parametro TimeoutConfig opzionale quando esegui CreateJob o l’operazione API CreateJobTemplate.

Per utilizzare la configurazione di timeout

  1. Per impostare il timer in corso durante la creazione di un lavoro o di un modello di lavoro, impostate un valore per la inProgressTimeoutInMinutes proprietà dell'oggetto opzionale. TimeoutConfig

    "timeoutConfig": { "inProgressTimeoutInMinutes": number }
  2. Per specificare uno step timer per l'esecuzione di un lavoro, impostate un valore per stepTimeoutInMinutes quando chiamate UpdateJobExecution. Il timer della fase si applica solo all'esecuzione del processo che stai aggiornando. È possibile impostare un nuovo valore per questo timer ogni volta che si aggiorna l'esecuzione di un processo.

    Nota

    UpdateJobExecution può eliminare un timer della fase già esistente creandone uno nuovo con un valore di -1.

    { ... "statusDetails": { "string" : "string" }, "stepTimeoutInMinutes": number }
  3. Per creare un nuovo step timer, puoi anche chiamare l'operazione StartNextPendingJobExecutionAPI.

Configurazione del nuovo tentativo

Nota

Quando crei un processo, valuta un numero di nuovi tentativi appropriato per la configurazione. Per evitare costi eccessivi a causa di potenziali tentativi falliti, puoi aggiungere una configurazione di interruzione. Dopo avere creato un processo, il numero di nuovi tentativi non può essere modificato. È possibile impostare il numero di tentativi su 0 solo utilizzando l'operazione UpdateJobAPI.

Per aggiungere questa configurazione utilizzando l'API, specifica il parametro jobExecutionsRetryConfig opzionale quando esegui CreateJob o l’operazione API CreateJobTemplate.

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

Dove criteriaList è un array che specifica l'elenco di criteri che determina il numero di nuovi tentativi consentiti per ogni tipo di errore di un processo.