

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de la tâche
<a name="jobs-configurations"></a>

Vous pouvez disposer des configurations supplémentaires suivantes pour chaque tâche que vous déployez sur les cibles spécifiées.
+ **Déploiement** : définit le nombre d’appareils recevant le document de tâche chaque minute.
+ **Planification** : planifie une tâche pour une date et une heure futures en plus d’utiliser des fenêtres de maintenance récurrentes.
+ **Annulation** : annule une tâche lorsque certains appareils ne reçoivent pas la notification de tâche ou lorsque vos appareils signalent un échec de l’exécution de la tâche.
+ **Délai d’attente** : si vos objectifs de tâche ne répondent pas dans un certain délai après le début de leur exécution, la tâche peut échouer.
+ **Réessayer** : Réessaie l’exécution de la tâche si votre appareil signale un échec lors de la tentative d’exécution d’une tâche, ou si le délai d’exécution de la tâche expire.

En utilisant ces configurations, vous pouvez surveiller l’état d’exécution de vos tâches et éviter qu’une mauvaise mise à jour ne soit envoyée à l’ensemble de la flotte.

**Topics**
+ [Comment fonctionnent les configurations de tâches](jobs-configurations-details.md)
+ [Configurations supplémentaires](jobs-configurations-specify.md)

# Comment fonctionnent les configurations de tâches
<a name="jobs-configurations-details"></a>

Vous utilisez les configurations de déploiement et d’annulation lorsque vous déployez une tâche, ainsi que les configurations de délai d’expiration et de nouvelle tentative pour l’exécution de la tâche. Les sections suivantes présentent plus d’informations sur le fonctionnement de ces configurations.

**Topics**
+ [Configurations du déploiement, de la planification et de l’annulation des tâches](#job-rollout-abort-scheduling)
+ [Configurations du délai d’exécution des tâches et des nouvelles tentatives](#job-timeout-retry)

## Configurations du déploiement, de la planification et de l’annulation des tâches
<a name="job-rollout-abort-scheduling"></a>

Vous pouvez utiliser les configurations de déploiement, de planification et d’annulation des tâches pour définir le nombre d’appareils recevant le document de tâche, planifier le déploiement d’une tâche et déterminer les critères d’annulation d’une tâche.

### Configuration du déploiement des tâches
<a name="job-rollout-configuration"></a>

Vous pouvez spécifier la vitesse à laquelle les cibles sont averties d'une exécution de tâche en attente. Vous pouvez également créer un déploiement échelonné pour gérer les mises à jour, les redémarrages et d’autres opérations. Pour définir la manière dont vos cibles sont notifiées, utilisez les fréquences de déploiement des tâches.

#### Fréquences de déploiement des tâches
<a name="job-rollout-using"></a>

Vous pouvez créer une configuration de déploiement en utilisant une fréquence de déploiement constante ou une fréquence de déploiement exponentielle. Pour spécifier le nombre maximum d’objectifs de tâche à informer par minute, utilisez une fréquence de déploiement constante.

AWS IoT les emplois peuvent être déployés en utilisant des taux de déploiement exponentiels lorsque divers critères et seuils sont atteints. Si le nombre de tâches ayant échoué correspond à un ensemble de critères que vous spécifiez, vous pouvez annuler le déploiement des tâches. Vous définissez les critères de fréquence de déploiement des tâches lorsque vous créez une tâche à l’aide de l’objet [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html). Les critères d’annulation de tâche sont définis lors de la création de la tâche via l’objet [https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html).

L’exemple suivant présente le fonctionnement des fréquence de déploiement. Par exemple, un déploiement de tâche avec une fréquence de base de 50 par minute, un facteur d’incrément de 2 et un nombre d’appareils notifiés et réussis égal à 1 000, fonctionnerait comme suit : la tâche débutera à un rythme de 50 exécutions par minute et se poursuivra à ce rythme jusqu’à ce que 1 000 objets aient reçu des notifications d’exécution de tâches ou que 1 000 exécutions de tâches aient eu lieu avec succès. 

Le tableau suivant illustre la façon dont le déploiement procéderait sur les quatre premiers incréments.


|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
|  Fréquence de lancement par minute  |  50  |  100  |  200  |  400  | 
|  Nombre d’appareils notifiés ou d’exécutions de tâches réussies pour satisfaire une augmentation de fréquence  |  1 000  |  2 000  |  3 000  |  4 000  | 

**Note**  
Si vous avez atteint votre limite maximale de 500 tâches simultanées (`isConcurrent = True`), toutes les tâches actives conserveront le statut de `IN-PROGRESS` et ne lanceront aucune nouvelle exécution de tâches tant que le nombre de tâches simultanées ne sera pas inférieur ou égal à 499 (`isConcurrent = False)`. Cela s’applique aux tâches instantanées et continues.  
Si `isConcurrent = True`, la tâche déploie actuellement des exécutions de tâches sur tous les appareils de votre groupe cible. Si `isConcurrent = False` la tâche a terminé le déploiement de toutes les exécutions de tâches sur tous les appareils de votre groupe cible. Il mettra à jour son état une fois que tous les appareils de votre groupe cible auront atteint l’état terminal, ou un pourcentage seuil de votre groupe cible si vous avez sélectionné une configuration d’annulation de tâche. Le statut du niveau de tâche indique pour `isConcurrent = True` et `isConcurrent = False` sont les deux `IN_PROGRESS`.  
Pour plus d’informations sur les limites des tâches actives et simultanées, consultez [Limites de tâches actives et simultanées](job-limits.md#job-limits-active-concurrent).

#### Fréquence de déploiement des tâches pour les tâches continues utilisant des groupes d’objets dynamiques
<a name="job-rollout-dynamic-groups"></a>

Lorsque vous utilisez une tâche continue pour déployer des opérations à distance sur votre flotte, AWS IoT Jobs exécute les tâches pour les appareils de votre groupe cible. Pour les nouveaux appareils ajoutés au groupe d’objets dynamiques, ces exécutions de tâches continuent d’être déployées sur ces appareils même après la création de la tâche.

La configuration de déploiement permet de contrôler les fréquence de déploiement uniquement pour les appareils ajoutés au groupe jusqu’à la création de la tâche. Après la création d’une tâche, pour tous les nouveaux appareils, les exécutions de tâches sont créées quasiment en temps réel dès que les appareils rejoignent le groupe cible.

### Configuration de la planification des tâches
<a name="job-scheduling"></a>

Vous pouvez planifier une tâche continue ou instantanée jusqu’à un an à l’avance en utilisant une heure de début, une heure de fin et un comportement de fin prédéterminés indiquant ce qu’il adviendra de chaque exécution de tâche une fois l’heure de fin atteinte. En outre, vous pouvez créer un créneau de maintenance récurrente facultative avec une fréquence, une heure de début et une durée flexibles pour les tâches continues afin de déployer un document de tâche sur tous les appareils du groupe cible.

#### Configurations de planification des tâches
<a name="jobs-scheduling-without-maintenance-window"></a>

**L’heure de début**

L’heure de début d’une tâche planifiée correspond à la date et à l’heure futures auxquelles la tâche commencera à être déployée du document de tâche sur tous les appareils du groupe cible. L’heure de début d’une tâche planifiée s’applique aux tâches continues et aux tâches instantanées. Lorsqu’une tâche planifiée est initialement créée, elle conserve un état de statut de `SCHEDULED`. Lorsque vous arrivez au document `startTime` que vous avez sélectionné, il est mis à jour à `IN_PROGRESS` et commence le déploiement du document de tâche. Le délai `startTime` doit être inférieur ou égal à un an à compter de la date et de l’heure initiales auxquelles vous avez créé la tâche planifiée.

Pour plus d'informations sur la syntaxe à utiliser `startTime` lors de l'utilisation d'une commande d'API ou du AWS CLI, consultez [Timestamp](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp).

Pour une tâche avec une configuration de planification optionnelle qui a lieu pendant un créneau de maintenance récurrente dans un lieu respectant l’heure d’été (DST), l’heure changera d’une heure lors du passage de l’heure d’été à l’heure normale et de l’heure standard à l’heure d’été.

**Note**  
Le fuseau horaire affiché dans le AWS Management Console est le fuseau horaire actuel de votre système. Toutefois, ces fuseaux horaires seront convertis en UTC dans le système.

**L’heure de fin**

L’heure de fin d’une tâche planifiée est la date et l’heure futures auxquelles la tâche arrêtera le déploiement du document de tâche sur tous les appareils restants du groupe cible. L’heure de fin d’une tâche planifiée s’applique aux tâches continues et aux tâches instantanées. Une fois qu’une tâche planifiée arrive à l’état sélectionné `endTime` et que toutes les exécutions de tâches ont atteint un état terminal, elle met à jour son état de statut de `IN_PROGRESS` à `COMPLETED`. Le délai `endTime` doit être inférieur ou égal à deux ans à compter de la date et de l’heure initiales auxquelles vous avez créé la tâche planifiée. La durée minimale entre `startTime` et `endTime` est de 30 minutes. Des tentatives de nouvelle tentative d’exécution de la tâche auront lieu jusqu’à ce que la tâche atteigne le `endTime`, puis `endBehavior` dicteront la marche à suivre.

Pour plus d'informations sur la syntaxe à utiliser `endTime` lors de l'utilisation d'une commande d'API ou du AWS CLI, consultez [Timestamp](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp).

Pour une tâche avec une configuration de planification optionnelle qui a lieu pendant un créneau de maintenance récurrente dans un lieu respectant l’heure d’été (DST), l’heure changera d’une heure lors du passage de l’heure d’été à l’heure normale et de l’heure standard à l’heure d’été.

**Note**  
Le fuseau horaire affiché dans le AWS Management Console est le fuseau horaire actuel de votre système. Toutefois, ces fuseaux horaires seront convertis en UTC dans le système.

**Comportement final**

Le comportement final d’une tâche planifiée détermine ce qu’il advient de la tâche et de toutes les exécutions de tâches inachevées lorsque la tâche atteint la valeur sélectionnée `endTime`.

La liste suivante répertorie les comportements finaux que vous pouvez sélectionner lors de la création de la tâche ou du modèle de tâche :
+ `STOP_ROLLOUT`
  + `STOP_ROLLOUT` arrête le déploiement du document de tâche sur tous les appareils restants du groupe cible de la tâche. De plus, toutes les exécutions de tâches `QUEUED` et `IN_PROGRESS` se poursuivront jusqu’à ce qu’elles atteignent l’état terminal. Il s’agit du comportement final par défaut, sauf si vous sélectionnez `CANCEL` ou`FORCE_CANCEL`.
+ `CANCEL`
  + `CANCEL` arrête le déploiement du document de tâche sur tous les appareils restants du groupe cible de la tâche. En outre, toutes les exécutions de tâches `QUEUED` seront annulées et toutes les exécutions de tâches `IN_PROGRESS` se poursuivront jusqu’à ce qu’elles atteignent un état terminal.
+ `FORCE_CANCEL`
  + `FORCE_CANCEL` arrête le déploiement du document de tâche sur tous les appareils restants du groupe cible de la tâche. De plus, toutes les exécutions de tâches `QUEUED` et `IN_PROGRESS` seront annulées.

**Note**  
Pour sélectionner un`endbehavior`, vous devez sélectionner un `endtime`

**Durée maximale**

La durée maximale d’un tâche planifié doit être inférieure ou égale à deux ans, quel que soit le `startTime` et `endTime`. 

Le tableau suivant répertorie les scénarios de durée courants d’une tâche planifiée :


| **Numéro de l'exemple de tâche planifiée** | **startTime** | **endTime** | **Durée maximale** | 
| --- | --- | --- | --- | 
|  1  |  Immédiatement après la création initiale d’emplois.  |  Un an après la création initiale d’emplois.  |  Un an  | 
|  2  |  Un mois après la création initiale de l’emploi.  |  13 mois après la création initiale de l’emploi.  |  Un an  | 
|  3  |  Un an après la création initiale d’emplois.  |  Deux ans après la création initiale d’emplois.  |  Un an  | 
|  4  |  Immédiatement après la création initiale d’emplois.  |  Deux ans après la création initiale d’emplois.  |  Deux ans  | 

#### Créneau de maintenance récurrente
<a name="jobs-scheduling-maintenance-window"></a>

La fenêtre de maintenance est une configuration facultative dans la configuration de planification du AWS Management Console et `SchedulingConfig` dans le `CreateJob` et `CreateJobTemplate` APIs. Vous pouvez configurer un créneau de maintenance récurrente avec une heure de début, une durée et une fréquence (quotidienne, hebdomadaire ou mensuelle) prédéterminées. Les créneaux de maintenance ne s’appliquent qu’aux tâches continues. La durée maximale d’un créneau de maintenance récurrente est de 23 heures et 50 minutes.

Le schéma suivant illustre l’état d’avancement des tâches pour différents scénarios de tâches planifiées avec un créneau de maintenance facultative :

![\[Schéma illustrant le cycle de vie d'une tâche continue, passant par les états SCHEDULED, IN_PROGRESS, CANCELLED et DELETION_IN_PROGRESS lors de certains événements.\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/images/job-states-diagram-scheduled-maintenance-window.png)


Pour de plus amples informations sur l’état du statut d’une tâche, veuillez consulter [Tâches et états d'exécution des tâches](iot-jobs-lifecycle.md).

**Note**  
Si une tâche arrive à `endTime` pendant une période de maintenance, elle sera mise à jour de `IN_PROGRESS` à `COMPLETED`. De plus, toutes les exécutions de tâches restantes suivront `endBehavior` pour la tâche.

**Expressions Cron**

Pour les tâches planifiées déployant le document de tâche pendant un créneau de maintenance avec une fréquence personnalisée, la fréquence personnalisée est saisie à l’aide d’une expression cron. Une expression cron se compose de six champs obligatoires qui sont séparés par des espaces. 

**Syntaxe**

```
cron(fields)
```


| **Champ** | **Valeurs** | **Caractères génériques** | 
| --- | --- | --- | 
|  Minutes  |  0-59  |  , - \$1 /  | 
|  Heures  |  0-23  |  , - \$1 /  | 
|  D ay-of-month  |  1-31  |  , - \$1 ? / L W  | 
|  Mois  |  1-12 ou JAN-DEC  |  , - \$1 /  | 
|  D ay-of-week  |  1-7 ou DIM-SAM  |  , - \$1 ? L \$1  | 
|  Année  |  1970-2199  |  , - \$1 /  | 

**Caractères génériques**
+ Le caractère générique **,** (virgule) inclut des valeurs supplémentaires. Dans le champ Mois, JAN,FEB,MAR englobe janvier, février et mars.
+ Le caractère générique **-** (tiret) spécifie des plages. Dans le champ Jour, 1-15 englobe les jours 1 à 15 du mois spécifié.
+ Le caractère générique **\$1** (astérisque) inclut toutes les valeurs du champ. Dans le champ Hours, **\$1** inclut toutes les heures. Vous ne pouvez pas utiliser **\$1** à la fois dans les Day-of-week champs Day-of-month et. Si vous l'utilisez dans un champ, vous devez utiliser **?** dans l'autre.
+ Le caractère générique **/** (barre oblique) spécifie les incréments. Dans le champ Minutes, vous pouvez entrer 1/10 pour spécifier toutes les dix minutes, à partir de la première minute de l'heure (par exemple, les 11e, 21e, 31e minutes, et ainsi de suite).
+ Le caractère générique **?** (point d’interrogation) indique l’un ou l’autre. Dans le Day-of-month champ, vous pouvez saisir **7** et si vous ne vous souciez pas du jour de la semaine le 7, vous pouvez entrer **?** sur le Day-of-week terrain.
+ Le caractère générique **L** dans les champs ou spécifie le dernier jour du mois ou de la semaine. Day-of-month Day-of-week
+ Le **W** caractère générique dans le Day-of-month champ indique un jour de la semaine. Dans le Day-of-month champ, **3W** indique le jour de la semaine le plus proche du troisième jour du mois.
+ Le caractère générique **\$1** dans le Day-of-week champ indique une certaine instance du jour de la semaine spécifié dans un délai d'un mois. Par exemple, 3\$12 correspond au deuxième mardi du mois : le 3 fait référence à mardi, car c’est le troisième jour de chaque semaine, et le 2 fait référence à la deuxième journée de ce type dans le mois.
**Note**  
Si vous utilisez un caractère « \$1 », vous ne pouvez définir qu'une seule expression dans le day-of-week champ. Par exemple, `"3#1,6#3"` n’est pas valide, car il est interprété comme deux expressions.

**Restrictions**
+ Vous ne pouvez pas spécifier les champs Day-of-month et Day-of-week de la même expression cron. Si vous spécifiez une valeur dans l’un de ces champs, vous devez utiliser un caractère générique **?** dans l’autre.

**Exemples**

Reportez-vous aux exemples de chaînes cron suivants lorsque vous utilisez une expression cron pour la `startTime` de maintenance récurrente.


| **Minutes** | **Heures** | **Jour du mois** | **Mois** | **Jour de la semaine** | **Année** | **Signification** | 
| --- | --- | --- | --- | --- | --- | --- | 
| 0 USD | 10 | \$1 | \$1 | ? | \$1 |  Exécuter à 10 h 00 (UTC) chaque jour  | 
| 15 | 12 | \$1 | \$1 | ? | \$1 |  Exécuter à 12 h 15 (UTC) chaque jour  | 
| 0 | 18 | ? | \$1 | MON-FRI | \$1 |  Exécuter à 18 h 00 (UTC) du lundi au vendredi  | 
| 0 | 8 | 1 | \$1 | ? | \$1 |  Exécuter à 8 h 00 (UTC) chaque 1er jour du mois  | 

#### Durée du créneau de maintenance récurrente et logique de fin
<a name="jobs-scheduling-maintenance-window-end-behavoir"></a>

Lorsqu’un déploiement de tâche pendant un créneau de maintenance atteint la fin de la durée d’occurrence du créneau de maintenance en cours, les actions suivantes se produisent :
+ La tâche interrompra tous les déploiements du document de tâche sur tous les appareils restants de votre groupe cible. Il reprendra au créneau `startTime` de maintenance suivant.
+ Toutes les exécutions de tâches dont le statut de `QUEUED` resteront dans `QUEUED` jusqu’à la `startTime` de la prochaine occurrence du créneau de maintenance. Dans le créneau suivant, ils peuvent passer à `IN_PROGRESS` au moment où l’appareil est prêt à commencer à exécuter les actions spécifiées dans le document de tâche.
+ Toutes les exécutions de tâches dont le statut est `IN_PROGRESS` continueront d’exécuter les actions spécifiées dans le document de tâche jusqu’à ce qu’elles atteignent l’état terminal. Toute nouvelle tentative, comme indiqué dans `JobExecutionsRetryConfig` aura lieu au prochain créneau `startTime` de maintenance.

### Configuration d’annulation de la tâche
<a name="job-abort-using"></a>

Utilisez cette configuration pour créer un critère d’annulation d’une tâche lorsqu’un pourcentage seuil d’appareils répond à ces critères. Par exemple, vous pouvez utiliser cette configuration pour annuler une tâche dans les cas suivants : 
+ Lorsqu'un pourcentage minimal d'appareils ne reçoit pas les notifications d'exécution de la tâche, par exemple lorsque votre appareil n'est pas compatible avec une mise à jour Over-The-Air (OTA). Dans ce cas, votre appareil peut signaler un statut `REJECTED`.
+ Lorsqu’un certain pourcentage d’appareils signalent l’échec de l’exécution de leurs tâches, par exemple lorsque votre appareil se déconnecte lorsqu’il tente de télécharger le document de tâche depuis une URL Amazon S3. Dans de tels cas, votre appareil doit être programmé pour signaler le statut `FAILURE` à AWS IoT.
+ Lorsqu’un statut `TIMED_OUT` est signalé parce que l’exécution de la tâche expire pour un certain pourcentage d’appareils après le début de l’exécution de la tâche.
+ En cas d’échec de plusieurs tentatives. Lorsque vous ajoutez une configuration de nouvelle tentative, chaque nouvelle tentative peut entraîner des frais supplémentaires pour votre Compte AWS. Dans de tels cas, l’annulation de la tâche peut annuler les exécutions de tâches en file d’attente et éviter de nouvelles tentatives pour ces exécutions. Pour plus d’informations sur la configuration de nouvelle tentative et son utilisation avec la configuration d’annulation, consultez [Configurations du délai d’exécution des tâches et des nouvelles tentatives](#job-timeout-retry).

Vous pouvez configurer une condition d'abandon de tâche à l'aide de la AWS IoT console ou de l'API AWS IoT Jobs.

## Configurations du délai d’exécution des tâches et des nouvelles tentatives
<a name="job-timeout-retry"></a>

Utilisez la configuration du délai d’exécution des tâches pour vous envoyer [Notifications Jobs](jobs-comm-notifications.md) lorsqu’une exécution de tâche est en cours depuis plus longtemps que la durée définie. Utilisez la configuration de nouvelle tentative d’exécution de la tâche pour réessayer l’exécution lorsque la tâche échoue ou expire.

### Configuration du délai d’attente d’exécution de tâche
<a name="job-timeout-configuration"></a>

La configuration du délai d’exécution d’une tâche permet de vous avertir lorsqu’une tâche reste bloqué dans l’état `IN_PROGRESS` pendant une période de temps excessivement longue. Lorsque la tâche est `IN_PROGRESS`, vous pouvez suivre la progression de son exécution.

#### Minuteurs pour les délais d’expiration des tâches
<a name="job-timeout-timers"></a>

Il existe deux types de minuteurs : minuteurs d'avancement et minuteurs d'étape.

**Chronomètres en cours**  
Lorsque vous créez une tâche ou un modèle de tâche, vous pouvez spécifier une valeur comprise entre 1 minute et 7 jours pour le chronomètre en cours. Vous pouvez mettre à jour la valeur de ce chronomètre jusqu’au début de l’exécution de votre tâche. Une fois le chronomètre démarrée, il ne peut pas être mis à jour et la valeur du chronomètre s’applique à toutes les exécutions de tâches associées à la tâche. Chaque fois qu'une exécution de tâche reste dans le `IN_PROGRESS` statut pendant plus longtemps que cet intervalle, l'exécution de la tâche échoue et passe à l'`TIMED_OUT`état du terminal. AWS IoT publie également une notification MQTT.

**Chronomètre à étapes**  
Vous pouvez également définir un chronomètre qui s’applique uniquement à l’exécution de la tâche que vous souhaitez mettre à jour. Ce chronomètre n’a aucun effet sur le chronomètre en cours. Chaque fois que vous mettez à jour l’exécution d’une tâche, vous pouvez définir une nouvelle valeur pour la temporisation. Vous pouvez également créer un nouveau chronomètre lorsque vous démarrez l’exécution de tâche en attente suivante pour un objet. Si l'exécution de tâche demeure dans l'état `IN_PROGRESS` plus longtemps que l'intervalle du minuteur d'étape, elle échoue et passe à l'état final `TIMED_OUT`.

**Note**  
Vous pouvez définir le chronomètre en cours à l'aide de la AWS IoT console ou de l'API AWS IoT Jobs. Pour spécifier le chronomètre, utilisez l’API.

#### Comment fonctionnent les chronomètres pour les délais d’expiration des tâches
<a name="job-timeout-timers-works"></a>

Les exemples suivants illustrent les interactions entre les délais d’attente en cours et les délais d’attente par étape au cours d’une période de 20 minutes.

![\[Chronologie montrant un chronomètre en cours de 20 minutes avec des minuteries imbriquées de 7, 5 et 8 minutes.\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/images/timeout-diagram.png)


Les différentes étapes sont illustrées ci-dessous :

1. 

**12h00**  
Une nouvelle tâche est créée et un chronomètre en cours de vingt minutes démarre lors de la création d’une tâche. Le chronomètre en cours commence à s’exécuter et l’exécution de la tâche passe au statut `IN_PROGRESS`.

1. 

**12h05**  
Un nouveau chronomètre à étapes d’une valeur de 7 minutes est créé. L’exécution de la tâche expirera désormais à 12h12.

1. 

**12h10**  
Un nouveau chronomètre à étapes d’une valeur de 5 minutes est créé. Lorsqu’un nouveau chronomètre est créé, le chronomètre à étapes précédent est supprimé et l’exécution de la tâche expire désormais à 12h15.

1. 

**12h13**  
Un nouveau chronomètre à étapes d’une valeur de 9 minutes est créé. Le chronomètre à étapes précédent est supprimé et l’exécution de la tâche expirera désormais à 12h20 car le chronomètre en cours expire à 12h20. Le chronomètre à étapes ne peut pas dépasser la limite absolue du chronomètre à étapes en cours.

### Configuration de nouvelle tentative d’exécution de tâche
<a name="job-retry-configuration"></a>

Vous pouvez utiliser la configuration de nouvelle tentative pour réessayer l’exécution de la tâche lorsqu’un certain ensemble de critères est satisfait. Une nouvelle tentative peut être tentée lorsqu’une tâche arrive à expiration ou lorsque l’appareil échoue. Pour réessayer l’exécution en raison d’un échec du délai d’attente, vous devez activer la configuration du délai d’expiration.

**Comment utiliser la configuration de nouvelle tentative**  
Effectuez les étapes suivantes pour réessayer cette configuration.

1. Déterminez s’il convient d’utiliser la configuration de nouvelle tentative pour `FAILED`, `TIMED_OUT` ou les deux critères d’échec. En ce qui concerne le `TIMED_OUT` statut, une fois le statut signalé, AWS IoT Jobs réessaie automatiquement d'exécuter le travail pour l'appareil.

1. Pour connaître le statut `FAILED`, vérifiez si l’échec de l’exécution de votre tâche peut être réessayé. S’il est possible de réessayer, programmez votre appareil pour qu’il signale un statut `FAILURE` à AWS IoT. La section suivante décrit plus en détail les échecs réessayables et non réessayables. 

1. Spécifiez le nombre de tentatives à utiliser pour chaque type d’échec à l’aide des informations précédentes. Pour un seul appareil, vous pouvez spécifier jusqu’à 10 tentatives pour les deux types d’échec combinés. Les tentatives de nouvelle tentative s’arrêtent automatiquement lorsqu’une exécution réussit ou lorsqu’elle atteint le nombre de tentatives spécifié.

1. Ajoutez une configuration d’annulation pour annuler le tâche en cas d’échecs répétés afin d’éviter des frais supplémentaires liés à un grand nombre de nouvelles tentatives.

**Note**  
Lorsqu’une tâche arrive à la fin d’une période de maintenance récurrente, toutes les exécutions de tâches `IN_PROGRESS` continuent à exécuter les actions identifiées dans le document de tâche jusqu’à ce qu’elles atteignent l’état terminal. Si l’exécution d’une tâche atteint un état terminal de `FAILED` ou `TIMED_OUT` en dehors d’un créneau de maintenance, une nouvelle tentative aura lieu dans le créneau suivant si les tentatives ne sont pas épuisées. À la `startTime` du prochain créneau de maintenance, une nouvelle exécution de tâche sera créée et entrera dans un état de `QUEUED` jusqu’à ce que l’appareil soit prêt à commencer.

**Réessayer et annuler la configuration**  
Chaque nouvelle tentative entraîne des frais supplémentaires pour votre. Compte AWS Pour éviter d’encourir des frais supplémentaires en cas d’échecs répétés, nous vous recommandons d’ajouter une configuration d’annulation. Pour plus d’informations sur la tarification, consultez [Tarification d’AWS IoT Device Management](https://aws.amazon.com/iot-device-management/pricing/).

Plusieurs tentatives peuvent échouer lorsqu’un pourcentage élevé de vos appareils expire ou signale un échec. Dans ce cas, vous pouvez utiliser la configuration d’annulation pour annuler la tâche et éviter toute exécution de tâche en file d’attente ou toute nouvelle tentative.

**Note**  
Lorsque les critères d’annulation sont remplis pour annuler l’exécution d’une tâche, seules les exécutions de tâches `QUEUED` sont annulées. Aucune nouvelle tentative en file d’attente pour l’appareil ne sera tentée. Toutefois, les exécutions de tâches en cours qui ont un statut `IN_PROGRESS` ne seront pas annulées.

Avant de réessayer l’exécution d’une tâche qui a échoué, nous vous recommandons également de vérifier si l’échec de l’exécution de la tâche est réessayable, comme décrit dans la section suivante.

**Réessayez en cas d’échec de type `FAILED`**  
Pour tenter une nouvelle tentative en cas d’échec de type `FAILED`, vos appareils doivent être programmés pour signaler l’état `FAILURE` de l’échec de l’exécution d’une tâche à AWS IoT. Définissez la configuration des nouvelles tentatives avec les critères permettant de réessayer l’exécution des tâches `FAILED` et spécifiez le nombre de tentatives à effectuer. Lorsque AWS IoT Jobs détecte l'`FAILURE`état, il tente automatiquement de réessayer d'exécuter le travail pour le périphérique. Les tentatives se poursuivent jusqu’à ce que l’exécution de la tâche réussisse ou jusqu’à ce que le nombre maximal de tentatives soit atteint.

Vous pouvez suivre chaque nouvelle tentative et le tâche en cours d’exécution sur ces appareils. En suivant l’état d’exécution, une fois que le nombre de tentatives spécifié a été atteint, vous pouvez utiliser votre appareil pour signaler les échecs et lancer une nouvelle tentative. 

**Défaillances réessayables et non réessayables**  
L’échec de l’exécution de votre tâche peut être réessayable ou non. Chaque nouvelle tentative peut entraîner des frais pour votre Compte AWS. Pour éviter d’encourir des frais supplémentaires en cas de tentatives multiples, pensez d’abord à vérifier si l’échec de l’exécution de votre tâche est réessayable. Un exemple d’échec réessayable inclut une erreur de connexion rencontrée par votre appareil lors de la tentative de téléchargement du document de tâche à partir d’une URL Amazon S3. Si l’échec de l’exécution de votre tâche est réessayable, programmez votre appareil pour qu’il signale un état `FAILURE` en cas d’échec de l’exécution de la tâche. Définissez ensuite la configuration de nouvelle tentative pour réessayer les exécutions `FAILED`. 

Si l’exécution ne peut pas être relancée, afin d’éviter toute nouvelle tentative et d’entraîner des frais supplémentaires pour votre compte, nous vous recommandons de programmer l’appareil pour qu’il signale un statut `REJECTED` à AWS IoT. Parmi les échecs non réessayables, citons les cas où votre appareil n’est pas compatible avec la réception d’une mise à jour de tâche ou lorsqu’il rencontre une erreur de mémoire lors de l’exécution d’une tâche. Dans ces cas, AWS IoT Jobs ne réessaiera pas d'exécuter le travail car il ne recommencera l'exécution du travail que s'il détecte un statut `FAILED` ou`TIMED_OUT`. 

Après avoir déterminé qu’un échec d’exécution d’une tâche est réessayable, si une nouvelle tentative échoue toujours, pensez à consulter les journaux de l’appareil.

**Note**  
Lorsqu’une tâche avec la configuration de planification facultative atteint sa `endTime`, la commande `endBehavior` sélectionnée arrête le déploiement du document de tâche sur tous les appareils restants du groupe cible et dicte la marche à suivre pour les exécutions de tâches restantes. Les tentatives sont renouvelées si elles sont sélectionnées via la configuration de nouvelle tentative. 

**Réessayez en cas d’échec de type `TIMEOUT`**  
Si vous activez le délai d'expiration lors de la création d'une tâche, AWS IoT Jobs tentera de réessayer d'exécuter la tâche pour l'appareil lorsque le statut passe de à`IN_PROGRESS`. `TIMED_OUT` Ce changement d’état peut se produire lorsque le chronomètre en cours expire ou lorsqu’un chronomètre que vous spécifiez est `IN_PROGRESS` puis expire. Les tentatives se poursuivent jusqu’à ce que l’exécution de la tâche réussisse ou jusqu’à ce que le nombre maximal de tentatives soit atteint pour ce type d’échec.

**Mises à jour continues sur les tâches et les membres des groupes d’objets**  
Pour les tâches continues dont le statut est égal à `IN_PROGRESS`, le nombre de nouvelles tentatives est remis à zéro lorsque l’appartenance au groupe d’un objet est mise à jour. Supposons, par exemple, que vous avez spécifié cinq tentatives et que trois tentatives ont déjà été effectuées. Si un objet est maintenant supprimé du groupe d’objets puis rejoint le groupe, par exemple dans le cas de groupes d’objets dynamiques, le nombre de nouvelles tentatives est remis à zéro. Vous pouvez désormais effectuer cinq tentatives pour votre groupe d’objets au lieu des deux tentatives restantes. En outre, lorsqu’un objet est supprimé du groupe d’objets, les tentatives supplémentaires sont annulées.

# Configurations supplémentaires
<a name="jobs-configurations-specify"></a>

Lorsque vous créez une tâche ou un modèle de tâche, vous pouvez spécifier ces configurations supplémentaires. Vous trouverez ci-dessous les cas dans lesquels vous pouvez définir ces configurations.
+ Création d’un modèle de tâche personnalisé Les paramètres de configuration supplémentaires que vous spécifiez seront enregistrés lorsque vous créerez une tâche à partir du modèle.
+ Lors de la création d’une tâche personnalisée à l’aide d’un fichier de tâche. Le fichier de tâche peut être un fichier JSON chargé dans un compartiment S3.
+ Lorsque vous créez une tâche personnalisée à l’aide d’un modèle de tâche personnalisé. Si ces paramètres sont déjà spécifiés dans le modèle, vous pouvez les réutiliser ou les remplacer en spécifiant de nouveaux paramètres de configuration. 
+ Lors de la création d'une tâche personnalisée à l'aide d'un modèle AWS géré.

**Topics**
+ [Spécifiez les configurations des tâches à l'aide du AWS Management Console](job-configurations-console.md)
+ [Spécifiez les configurations des tâches à l'aide de l'API AWS IoT Jobs](job-configurations-api.md)

# Spécifiez les configurations des tâches à l'aide du AWS Management Console
<a name="job-configurations-console"></a>

Vous pouvez ajouter les différentes configurations pour votre tâche à l'aide de la AWS IoT console. Une fois que vous avez créé une tâche, vous pouvez voir les détails du statut de vos configurations de tâche sur la page des détails de la tâche. Pour plus d’informations sur l’installation et la configuration des différents kit SDK, consultez [Comment fonctionnent les configurations de tâches](jobs-configurations-details.md).

Ajoutez les configurations de tâche lorsque vous créez une tâche ou un modèle de tâche.

**Création d’un modèle de tâche personnalisé**  
Pour spécifier la configuration du déploiement lors de la création d’un modèle de tâche personnalisé

1. Accédez au [hub de modèles de tâches de la AWS IoT console](https://console.aws.amazon.com/iot/home#/jobtemplatehub) et choisissez **Create job template**.

1. Spécifiez les propriétés du modèle de tâche, fournissez le document de tâche, développez la configuration que vous souhaitez ajouter, puis spécifiez les paramètres de configuration.

**Lors de la création d’une tâche personnalisée**  
Pour spécifier la configuration du déploiement lors de la création d’une tâche personnalisée

1. Accédez au [hub Job de la AWS IoT console](https://console.aws.amazon.com/iot/home#/jobhub) et choisissez **Create job**.

1. Choisissez **Créer une tâche personnalisée** et spécifiez les propriétés de la tâche, les cibles et indiquez si vous souhaitez utiliser un fichier de tâche ou un modèle pour le document de tâche. Vous pouvez utiliser un modèle personnalisé ou un modèle AWS géré.

1. Choisissez la configuration de la tâche, puis développez la **configuration de déploiement** pour spécifier s’il faut utiliser une **fréquence constante** ou une **fréquence exponentielle**. Spécifiez ensuite les paramètres de configuration.

La section suivante présente les paramètres que vous pouvez spécifier pour chaque configuration.

## Configuration du déploiement
<a name="job-rollout-console"></a>

Vous pouvez spécifier si vous souhaitez utiliser une fréquence de déploiement constant ou une fréquence exponentielle.
+ 

**Définissez une fréquence de déploiement constant**  
Pour définir une fréquence constante pour les exécutions des tâches, choisissez **fréquence constante**, puis spécifiez le **maximum par minute** comme limite supérieure du fréquence. Cette valeur est facultative et est comprise entre 1 et 1 000. Si vous ne le définissez pas, il utilise 1000 comme valeur par défaut. 
+ 

**Définissez une fréquence de déploiement exponentiel**  
Pour définir une fréquence exponentielle, choisissez **fréquence exponentielle**, puis spécifiez les paramètres suivants :
  + 

**Tarif de base par minute**  
La fréquence à laquelle les tâches sont exécutées jusqu’à ce que le seuil **du nombre d’appareils notifiés** ou **du nombre d’appareils réussis** soit atteint pour les **critères d’augmentation du débit**.
  + 

**Facteur d’incrément**  
Le facteur exponentiel selon lequel le fréquence de déploiement augmente une fois que le seuil du **nombre d’appareils notifiés** ou du **nombre d’appareils réussis** est atteint pour les critères d’**augmentation du fréquence**.
  + 

**Critères d’augmentation de tarif**  
Le seuil pour le **nombre d’appareils notifiés** ou **le nombre d’appareils réussis**.

## Annulation de la configuration
<a name="job-abort-console"></a>

Choisissez **Ajouter une nouvelle configuration** et spécifiez les paramètres suivants pour chaque configuration :
+ 

**Type de défaillance**  
Spécifie les types d’échec qui déclenchent l’annulation d’une tâche. Il s’agit notamment de **FAILED**, **REJECTED**, **TIMED\$1OUT** ou **ALL**.
+ 

**Facteur d’incrément**  
Spécifie le nombre d’exécutions de tâches terminées qui doivent se produire avant que les critères d’annulation des tâches ne soient remplies.
+ 

**Pourcentage de seuil**  
Spécifie le nombre total de choses exécutées qui déclenchent l’annulation d’une tâche.

## Configuration d’une planification.
<a name="job-scheduling-console"></a>

Chaque tâche peut démarrer immédiatement après sa création initiale, être planifiée pour démarrer à une date et à une heure ultérieures, ou avoir lieu pendant un créneau de maintenance récurrente.

Choisissez **Ajouter une nouvelle configuration** et spécifiez les paramètres suivants pour chaque configuration :
+ 

**Démarrage d’une tâche**  
Spécifiez la date et l’heure de démarrage de la tâche ;
+ 

**Créneau de maintenance récurrente**  
Un créneau de maintenance récurrente définit la date et l’heure spécifiques auxquelles une tâche peut déployer le document de tâche sur les équipements cibles de la tâche. Le créneau de maintenance peut être répété chaque jour, chaque semaine, chaque mois ou selon une périodicité personnalisée.
+ 

**Fin de la tâche**  
Spécifiez la date et l’heure de la fin de tâche ;
+ 

**Comportement de fin de tâche**  
Sélectionnez un comportement final pour toutes les exécutions de tâches inachevées une fois la tâche terminée.

**Note**  
Lorsqu’une tâche avec la configuration de planification facultative et l’heure de fin sélectionnée atteint l’heure de fin, la tâche arrête le déploiement sur tous les appareils restants du groupe cible. Il tire également parti du comportement final sélectionné pour déterminer comment procéder aux exécutions de tâches restantes et à leurs tentatives de nouvelle tentative conformément à la configuration des nouvelles tentatives. 

## Configuration du délai d’attente
<a name="job-timeout-console"></a>

Par défaut, il n’y a pas de délai d’attente et votre tâche est annulée ou supprimée. Pour utiliser les délais d’attente, choisissez **Activer le délai d’expiration**, puis spécifiez une valeur de délai comprise entre 1 minute et 7 jours.

## Nouvelle tentative de configuration
<a name="job-retry-console"></a>

**Note**  
Une fois qu’une tâche a été créée, le nombre de tentatives ne peut pas être mis à jour. Vous ne pouvez supprimer la configuration de nouvelle tentative que pour tous les types d’échec. Lorsque vous créez une tâche, considérez le nombre approprié de tentatives à utiliser pour votre configuration. Pour éviter d’encourir des coûts supplémentaires en cas d’échec potentiel des nouvelles tentatives, ajoutez une configuration d’annulation.

Choisissez **Ajouter une nouvelle configuration** et spécifiez les paramètres suivants pour chaque configuration :
+ 

**Type de défaillance**  
Spécifie les types d’échec qui doivent déclencher une nouvelle tentative d’exécution de la tâche. Il s’agit notamment de **Échec**, **Expiré** et **Tout**. 
+ 

**Nombre de nouvelles tentatives**  
Spécifie le nombre de tentatives pour le **type d’échec** choisi. Pour les deux types d’échec combinés, jusqu’à 10 tentatives peuvent être tentées.

# Spécifiez les configurations des tâches à l'aide de l'API AWS IoT Jobs
<a name="job-configurations-api"></a>

Vous pouvez utiliser l'API [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html)ou l'[CreateJobTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html)API pour spécifier les différentes configurations de travail. Les sections suivantes décrivent comment ajouter ces configurations. Après avoir ajouté les configurations, vous pouvez utiliser [JobExecutionSummary](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html)et [JobExecutionSummaryForJob](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html)consulter leur statut.

Pour plus d’informations sur l’installation et la configuration des différents kit SDK, consultez [Comment fonctionnent les configurations de tâches](jobs-configurations-details.md).

## Configuration du déploiement
<a name="job-rollout-api"></a>

Vous pouvez spécifier une fréquence de déploiement constante ou une fréquence de déploiement exponentielle pour votre configuration de déploiement.
+ 

**Définissez une fréquence de déploiement constante**  
Pour définir une fréquence de déploiement constante, utilisez l’objet [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html) pour ajouter le paramètre `maximumPerMinute` à la demande `CreateJob`. Ce paramètre spécifie la limite supérieure de la fréquence à laquelle les exécutions de tâche peuvent se produire. Cette valeur est facultative et est comprise entre 1 et 1 000. Si vous ne définissez pas de valeur, elle utilise 1000 comme valeur par défaut.

  ```
      "jobExecutionsRolloutConfig": {
          "maximumPerMinute": 1000
      }
  ```
+ 

**Définissez une fréquence de déploiement exponentielle**  
Pour définir une fréquence de déploiement des tâches variable, utilisez l’objet [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html). Vous pouvez configurer la propriété `ExponentialRolloutRate` lorsque vous exécutez l’opération d’API `CreateJob`. L’exemple suivant définit une fréquence de déploiement exponentielle en utilisant le paramètre `exponentialRate`. Pour plus d’informations sur les paramètres, consultez [https://docs.aws.amazon.com/iot/latest/apireference/API_ExponentialRolloutRate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ExponentialRolloutRate.html).

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

Où le paramètre :

**baseRatePerMinutes**  
Spécifie la fréquence à laquelle les tâches sont exécutées jusqu’à ce que le seuil `numberOfNotifiedThings` ou `numberOfSucceededThings` ait été atteint.

**incrementFactor**  
Spécifie le facteur exponentiel par lequel la fréquence de déploiement augmente après que le seuil `numberOfNotifiedThings` ou `numberOfSucceededThings` a été atteint.

**rateIncreaseCriteria**  
Spécifie le seuil `numberOfNotifiedThings` ou `numberOfSucceededThings`.

## Annulation de la configuration
<a name="job-abort-api"></a>

Pour ajouter cette configuration à l’aide de l’API, spécifiez le paramètre [https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html) lorsque vous exécutez l’opération [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) ou l’opération de l’API [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html). L’exemple suivant montre une configuration d’annulation pour le déploiement d’une tâche qui a connu plusieurs échecs d’exécution, comme spécifié lors de l’opération d’API `CreateJob`.

**Note**  
La suppression d’exécutions de tâche affecte la valeur de calcul de l’exécution totale achevée. Lorsqu'une tâche est annulée, le service crée un `comment` et un `reasonCode` automatiques pour différencier une annulation guidée par l'utilisateur d'une annulation par interruption de tâche.

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

Où le paramètre :

**action**  
Spécifie l’action à entreprendre lorsque les critères d’annulation sont satisfaits. Ce paramètre est obligatoire et `CANCEL` est la seule valeur valide.

**failureType**  
Spécifie les types d’échec qui doivent entraîner l’annulation d’une tâche. Les valeurs valides sont `FAILED`, `REJECTED`, `TIMED_OUT` et `ALL`.

**minNumberOfExecutedThings**  
Le paramètre spécifie le nombre d’exécutions de tâches terminées qui doivent se produire avant que le service ne vérifie si les critères d’annulation de tâche ont été satisfaits. Dans cet exemple, AWS IoT ne vérifie pas si une annulation de tâche doit se produire tant que 100 appareils au moins n'ont pas terminé les exécutions de tâche.

**thresholdPercentage**  
Spécifie le nombre total d’éléments pour lesquels les tâches sont exécutées et qui peuvent déclencher l’annulation d’une tâche. Dans cet exemple, AWS IoT effectue des vérifications séquentielles et lance un abandon de tâche si le pourcentage seuil est atteint. Si au moins 20 % des exécutions complètes échouent après 100 exécutions, le déploiement de la tâche est annulé. Si ce critère n'est pas rempli, AWS IoT vérifie si au moins 50 % des exécutions terminées ont expiré après la fin des 200 exécutions. Si tel est le cas, le déploiement de la tâche est annulé.

## Configuration d’une planification.
<a name="job-scheduling-api"></a>

Pour ajouter cette configuration à l’aide de l’API, spécifiez l’option [https://docs.aws.amazon.com/iot/latest/apireference/API_SchedulingConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SchedulingConfig.html)lorsque vous exécutez l’opération [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) ou l’opération API [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html).

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

Où le paramètre :

**startTime**  
Spécifie la date et l’heure de lancement de la tâche.

**endTime**  
Spécifie la date et l’heure de la fin de tâche.

**maintenanceWindows**  
Spécifie si un créneau de maintenance facultative a été sélectionné pour la tâche planifiée afin de déployer le document de tâche sur tous les appareils du groupe cible. Le format de chaîne YYYY/MM/DD pour `maintenanceWindow` correspond à la date et hh:mm à l'heure.

**endBehavior**  
Spécifie le comportement d’une tâche planifiée lorsqu’elle atteint le `endTime`.

**Note**  
L'option `SchedulingConfig` pour une tâche est visible dans le [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html)et [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobTemplate.html) APIs.

## Configuration du délai d’attente
<a name="job-timeout-api"></a>

Pour ajouter cette configuration à l’aide de l’API, spécifiez le paramètre [https://docs.aws.amazon.com/iot/latest/apireference/API_TimeoutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_TimeoutConfig.html) lorsque vous exécutez l’opération [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) ou l’opération de l’API [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html).

Pour utiliser la configuration du délai d’expiration

1. Pour définir le chronomètre en cours lorsque vous créez une tâche ou un modèle de tâche, définissez une valeur pour la `inProgressTimeoutInMinutes` propriété de l'[TimeoutConfig](https://docs.aws.amazon.com//iot/latest/apireference/API_TimeoutConfig.html)objet facultatif.

   ```
       "timeoutConfig": { 
         "inProgressTimeoutInMinutes": number
      }
   ```

1. Pour spécifier un chronomètre pour l'exécution d'une tâche, définissez une valeur pour le `stepTimeoutInMinutes` moment où vous appelez [UpdateJobExecution](https://docs.aws.amazon.com//iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html). Le minuteur d'étape s'applique uniquement à l'exécution des tâches que vous mettez à jour. Vous pouvez définir une nouvelle valeur pour ce minuteur chaque fois que vous mettez à jour une exécution de tâche.
**Note**  
`UpdateJobExecution` peut également ignorer un chronomètre à étapes qui a déjà été créé en créant un chronomètre à étapes avec la valeur de -1.

   ```
   {
      ... 
       "statusDetails": { 
         "string" : "string" 
      },
      "stepTimeoutInMinutes": number
   }
   ```

1. Pour créer un nouveau chronomètre, vous pouvez également appeler l'opération [StartNextPendingJobExecution](https://docs.aws.amazon.com//iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html)API.

## Nouvelle tentative de configuration
<a name="job-retry-api"></a>

**Note**  
Lorsque vous créez une tâche, considérez le nombre approprié de tentatives à utiliser pour votre configuration. Pour éviter d’encourir des coûts supplémentaires en cas d’échec potentiel des nouvelles tentatives, ajoutez une configuration d’annulation. Une fois qu’une tâche a été créée, le nombre de tentatives ne peut pas être mis à jour. Vous pouvez uniquement définir le nombre de tentatives à 0 à l'aide de l'opération [UpdateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html)API.

Pour ajouter cette configuration à l’aide de l’API, spécifiez le paramètre [https://docs.aws.amazon.com/iot/latest/apireference/API_jobExecutionsRetryConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_jobExecutionsRetryConfig.html) lorsque vous exécutez l’opération [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) ou l’opération de l’API [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html).

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

Où **Criterialist** est un tableau spécifiant la liste des critères qui déterminent le nombre de tentatives autorisées pour chaque type d’échec d’une tâche.