

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.

# Gestion des tâches
<a name="create-manage-jobs"></a>

Utilisez des tâches pour informer les appareils d’une mise à jour du logiciel ou du micrologiciel. Vous pouvez utiliser la [AWS IoT console](https://console.aws.amazon.com/iot/), le [Opérations d’API de gestion et de contrôle des tâches](jobs-management-control-api.md#jobs-http-api) [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/reference/iot/index.html), ou le [AWS SDKs](https://aws.amazon.com/tools/#sdk)pour créer et gérer des tâches.

## Signature de code pour les tâches
<a name="create-manage-jobs-code-signing"></a>

 Lorsque vous envoyez du code à des appareils, pour que les appareils puissent détecter si le code a été modifié pendant le transport, nous vous recommandons de signer le fichier de code à l’aide du AWS CLI. Pour obtenir des instructions, veuillez consulter [Créer et gérer des tâches à l’aide du AWS CLI](manage-job-cli.md).

Pour plus d'informations, voir À [quoi sert la signature de code AWS IoT ?](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) .

## Document de tâche
<a name="create-manage-jobs-job-doc"></a>

Avant de créer une tâche, vous devez créer un document de tâche. Si vous utilisez la signature de code pour AWS IoT, vous devez télécharger votre document de travail dans un compartiment Amazon S3 versionné. Pour de plus amples informations sur la création et le chargement d’un fichier dans un compartiment Amazon S3, veuillez consulter [Mise en route sur Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dans le *Guide de démarrage Amazon S3*.

**Astuce**  
Pour des exemples de documents de travail, consultez l'exemple [jobs-agent.js](https://www.npmjs.com/package/aws-iot-device-sdk#jobs-agentjs) dans le AWS IoT SDK pour JavaScript.

## Présigné URLs
<a name="create-manage-jobs-presigned-URLs"></a>

Votre document de tâche peut contenir une URL Amazon S3 pré-signée qui pointe sur votre fichier de code (ou tout autre fichier). Les Amazon S3 présignés ne URLs sont valides que pour une durée limitée et sont générés lorsqu'un appareil demande un document de travail. Comme l’URL pré-signée n’est pas créée lorsque vous avez créé le document de tâche, vous utilisez une URL d’espace réservé dans votre document de tâche à la place. L’URL d’espace réservé se présente comme suit :

`${aws:iot:s3-presigned-url-v2:https://s3.region.amazonaws.com/{{<bucket>}}/{{<code file>}}}`

où :
+ {{bucket}}est le compartiment Amazon S3 qui contient le fichier de code.
+ {{code file}}est la clé Amazon S3 du fichier de code.

Lorsqu'un appareil demande le document de travail, AWS IoT génère l'URL présignée et remplace l'URL de remplacement par l'URL présignée. Votre document de tâche est alors envoyé à l'appareil.

**Rôle IAM pour autoriser le téléchargement de fichiers depuis S3**  
Lorsque vous créez une tâche qui utilise Amazon S3 présigné URLs, vous devez fournir un rôle IAM. Le rôle doit octroyer l’autorisation de télécharger les fichiers depuis le compartiment Amazon S3 où les données de tâche/les mises à jour sont stockées. Le rôle doit également accorder à AWS IoT l'autorisation d'endosser le rôle.

Vous pouvez éventuellement spécifier un délai d'expiration pour l'URL présignée. Pour de plus amples informations, veuillez consulter [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html).

**AWS IoT Autorisez Jobs à assumer votre rôle**

1. Allez à la page [Centre des rôles de la console IAM](https://console.aws.amazon.com/iamv2/home#/roles) et choisissez votre rôle.

1. Dans l’onglet **Relations d’approbation**, choisissez **Modifier la relation d’approbation** et remplacez le document de politique par le JSON suivant. Choisissez **Mettre à jour la politique d'approbation**.  
****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "iot.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Ajoutez les clés de condition globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) à la politique pour vous protéger contre le problème de l’adjoint confus.
**Important**  
Votre `aws:SourceArn` doit respecter le format :`arn:aws:iot:{{region}}:{{account-id}}:*`. Assurez-vous que cela {{region}} correspond à votre AWS IoT région et {{account-id}} à votre numéro de compte client. Pour plus d’informations, consultez [Prévention du problème de l’adjoint confus entre services](cross-service-confused-deputy-prevention.md). 

   ```
   {
     "Effect": "Allow",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": 
             "iot.amazonaws.com"        
          },
         "Action": "sts:AssumeRole",
         "Condition": {
            "StringEquals": {
               "aws:SourceAccount": "123456789012"
            },
            "ArnLike": {
                 "aws:SourceArn": "arn:aws:iot:*:123456789012:job/*"
            }
          }
        }
      ]
   }
   ```

1. Si votre travail utilise un document de travail qui est un objet Amazon S3, choisissez **Autorisation** et utilisez le code JSON suivant. Cela ajoute une politique qui autorise le téléchargement de fichiers depuis votre compartiment Amazon S3 :  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::{{your_S3_bucket}}/*"
           }
       ]
   }
   ```

## URL présignée pour le téléchargement de fichiers
<a name="create-manage-jobs-presigned-URLs-upload"></a>

Si vos appareils doivent télécharger des fichiers dans un compartiment Amazon S3 lors du déploiement d'une tâche, vous pouvez inclure l'espace réservé d'URL présigné suivant dans votre document de travail : 

```
${aws:iot:s3-presigned-url-upload:https://s3.region.amazonaws.com/{{<bucket>}}/{{<key>}}} 
```

Vous pouvez utiliser au maximum deux mots de `${thingName}` chaque et `${executionNumber}` comme mots clés réservés dans l'`key`attribut figurant dans l'URL d'espace réservé pour le téléchargement du fichier située dans votre document de travail. `${jobId}` L'espace réservé local représentant ces mots clés réservés dans l'`key`attribut sera analysé et remplacé lors de la création de l'exécution de la tâche. L'utilisation d'un espace réservé local avec des mots clés réservés spécifiques à chaque appareil garantit que chaque fichier téléchargé depuis un appareil est spécifique à cet appareil et qu'il n'est pas remplacé par un fichier similaire téléchargé depuis un autre appareil ciblé par le même déploiement de tâches. Pour plus d'informations sur la résolution des problèmes liés aux espaces réservés locaux dans un espace réservé d'URL présigné pour le téléchargement de fichiers lors du déploiement d'une tâche, consultez. [Messages d'erreur généraux relatifs au dépannage](software-package-catalog-troubleshooting.md#spc-general-troubleshooting)

**Note**  
Le nom du compartiment Amazon S3 ne peut pas contenir l'espace réservé local représentant les mots clés réservés pour le fichier chargé. L'espace réservé local doit être situé dans l'`key`attribut.

Cet espace réservé d'URL présignée sera converti en URL de téléchargement présignée Amazon S3 dans votre document de travail lorsqu'un appareil le recevra. Vos appareils l'utiliseront pour télécharger des fichiers vers un compartiment Amazon S3 de destination.

**Note**  
Lorsque le compartiment et la clé Amazon S3 ne sont pas fournis dans l'URL d'espace réservé ci-dessus, AWS IoT Jobs génère automatiquement une clé pour chaque appareil en utilisant un maximum de deux des éléments suivants : `${thingName}``${jobId}`, et`${executionNumber}`.

## URL présignée à l'aide de la gestion des versions d'Amazon S3
<a name="create-manage-jobs-presigned-URLs-versioning"></a>

Il est essentiel de protéger l'intégrité d'un fichier stocké dans un compartiment Amazon S3 pour garantir des déploiements de tâches sécurisés en utilisant ce fichier sur votre parc d'appareils. Grâce au versionnement d'Amazon S3, vous pouvez ajouter un identifiant de version pour chaque variante du fichier stockée dans votre compartiment Amazon S3 afin de suivre chaque version du fichier. Cela permet de savoir quelle version du fichier est déployée sur votre parc d'appareils à l'aide de AWS IoT Jobs. Pour plus d'informations sur les compartiments Amazon S3 utilisant le versionnement, consultez [Utilisation du versionnement dans les compartiments Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html).

Si le fichier est stocké dans Amazon S3 et que le document de travail contient un espace réservé d'URL présigné, AWS IoT Jobs générera une URL présignée dans le document de travail à l'aide du compartiment Amazon S3, de la clé du compartiment et de la version du fichier stocké dans le compartiment Amazon S3. Cette URL présignée générée dans le document de travail remplacera l'espace réservé d'URL présigné initialement dans le document de travail. Si vous mettez à jour le fichier stocké dans votre compartiment Amazon S3, une nouvelle version du fichier et les versions suivantes `versionId` seront créées pour signaler les mises à jour effectuées et permettre de cibler ce fichier spécifique lors de futurs déploiements de tâches.

Reportez-vous aux exemples suivants pour un aperçu avant et pendant de l'Amazon S3 présigné URLs dans votre document de travail à l'aide du `versionId` :

**Espace réservé pour l'URL présignée Amazon S3 (avant le déploiement de Job)**

```
//Virtual-hosted style URL
${aws:iot:s3-presigned-url-v2:https://{{bucket-name}}.s3.{{region-code}}.amazonaws.com/{{key-name}}%3FversionId%3D{{version-id}}}

//Path-style URL
${aws:iot:s3-presigned-url-v2:https://s3.{{region-code}}.amazonaws.com/{{bucket-name}}/{{key-name}}%3FversionId%3D{{version-id}}}
```

**URL présignée Amazon S3 (pendant le déploiement de la tâche)**

```
//Virtual-hosted style URL
${aws:iot:s3-presigned-url-v2:https://{{sample-bucket-name}}.s3.{{us-west-2}}.amazonaws.com/{{sample-code-file.png}}%3FversionId%3D{{version1}}}

//Path-style
${aws:iot:s3-presigned-url-v2:https://s3.{{us-west-2}}.amazonaws.com/{{sample-bucket-name}}/{{sample-code-file.png}}%3FversionId%3D{{version1}}}
```

[Pour plus d'informations sur les objets hébergés virtuellement et de style Path sur Amazon S3 URLs, consultez la section Requêtes et [Virtual-hosted-style requêtes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access) de type PATH.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access)

**Note**  
Si vous souhaitez l'ajouter `versionId` à une URL présignée Amazon S3, elle doit être conforme à la prise en charge du codage d'URL. AWS SDK for Java 2.x Pour plus d'informations, consultez [Modifications apportées à l'analyse d'Amazon S3 URIs de la version 1 à la version 2.](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-s3-uri-parser.html#migration-3-uri-parser-api-changes)

**Différences entre les versions de l'espace réservé aux URL présignées Amazon S3**

La liste suivante décrit les différences entre les espaces réservés aux URL présignés Amazon S3 `${aws:iot:s3-presigned-url-v1` (version 1) et `${aws:iot:s3-presigned-url-v2` (version 2) :
+  L'espace réservé aux URL présignées Amazon S3 n'est `${aws:iot:s3-presigned-url-v1` pas pris en charge. `version-id`
+ L'espace réservé pour l'URL présignée Amazon S3 `${aws:iot:s3-presigned-url-v1` reçoit l'URL Amazon S3 non codée. L'espace réservé à l'URL présignée Amazon S3 `${aws:iot:s3-presigned-url-v2` nécessite que l'URL Amazon S3 soit codée conformément à la norme du SDK Amazon S3.

**Topics**
+ [Signature de code pour les tâches](#create-manage-jobs-code-signing)
+ [Document de tâche](#create-manage-jobs-job-doc)
+ [Présigné URLs](#create-manage-jobs-presigned-URLs)
+ [URL présignée pour le téléchargement de fichiers](#create-manage-jobs-presigned-URLs-upload)
+ [URL présignée à l'aide de la gestion des versions d'Amazon S3](#create-manage-jobs-presigned-URLs-versioning)
+ [Créez et gérez des emplois à l'aide du AWS Management Console](manage-job-console.md)
+ [Créez et gérez des emplois à l'aide du AWS CLI](manage-job-cli.md)