Spécifiez les configurations des tâches à l’aide de l’API Jobs AWS IoT - AWS IoT Core

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.

Spécifiez les configurations des tâches à l’aide de l’API Jobs AWS IoT

Vous pouvez utiliser l'API CreateJobou l'CreateJobTemplateAPI 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 JobExecutionSummaryet JobExecutionSummaryForJobconsulter 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.

Configuration du déploiement

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 JobExecutionsRolloutConfig 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 JobExecutionsRolloutConfig. 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 de plus amples informations sur les paramètres, veuillez consulter ExponentialRolloutRate.

    { ... "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

Pour ajouter cette configuration à l’aide de l’API, spécifiez le paramètre AbortConfig lorsque vous exécutez l’opération CreateJob ou l’opération de l’API CreateJobTemplate. 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.

Pour ajouter cette configuration à l’aide de l’API, spécifiez l’option SchedulingConfiglorsque vous exécutez l’opération CreateJob ou l’opération API CreateJobTemplate.

"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 pour maintenanceWindow est AAAA/MM/JJ pour la date et hh:mm pour l’heure.

endBehavior

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

Note

Le SchedulingConfig facultatif pour une tâche est consultable dans le DescribeJob et les API DescribeJobTemplate.

Configuration du délai d’attente

Pour ajouter cette configuration à l’aide de l’API, spécifiez le paramètre TimeoutConfig lorsque vous exécutez l’opération CreateJob ou l’opération de l’API CreateJobTemplate.

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'TimeoutConfigobjet facultatif.

    "timeoutConfig": { "inProgressTimeoutInMinutes": number }
  2. 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. 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 }
  3. Pour créer un nouveau chronomètre, vous pouvez également appeler l'opération StartNextPendingJobExecutionAPI.

Nouvelle tentative de configuration

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 UpdateJobAPI.

Pour ajouter cette configuration à l’aide de l’API, spécifiez le paramètre jobExecutionsRetryConfig lorsque vous exécutez l’opération CreateJob ou l’opération de l’API CreateJobTemplate.

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

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.