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 parametromaximumPerMinute
alla richiestaCreateJob
. 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à
quando esegui l'operazione APIExponentialRolloutRate
CreateJob
. L'esempio seguente imposta una velocità di rollout esponenziale utilizzando il parametroexponentialRate
. Per ulteriori informazioni sui parametri, consultaExponentialRolloutRate
.{ ... "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
onumberOfSucceededThings
. - incrementFactor
-
Specifica il fattore esponenziale con il quale la velocità di rollout aumenta dopo che è stata raggiunta la soglia di
numberOfNotifiedThings
onumberOfSucceededThings
. - rateIncreaseCriteria
-
Specifica la soglia di
numberOfNotifiedThings
onumberOfSucceededThings
.
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
eALL
. - 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
-
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 }
-
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 }
-
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.