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
Utilisez des tâches pour informer les appareils d’une mise à jour du logiciel ou du micrologiciel. Vous pouvez utiliser la AWS IoT console
Signature de code pour les tâches
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.
Pour plus d'informations, voir À quoi sert la signature de code AWS IoT ? .
Document de tâche
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 dans le Guide de démarrage Amazon S3.
Astuce
Pour des exemples de documents de travail, consultez l'exemple
URL présignées
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 URL Amazon S3 pré-signées sont valides uniquement pour une quantité de temps limitée et sont générées lorsqu’un appareil demande un document de tâche. 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ù :
-
bucketest le compartiment Amazon S3 qui contient le fichier de code. -
code fileest 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 l'espace réservé 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 des URL Amazon S3 présignées, 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.
Octroi AWS IoT Jobs : autorisation d'assumer votre rôle
-
Allez à la page Centre des rôles de la console IAM
et choisissez votre rôle. -
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" } ] }
-
Ajoutez les clés de condition globale
aws:SourceArnetaws:SourceAccountà la politique pour vous protéger contre le problème de l’adjoint confus.Important
Votre
aws:SourceArndoit respecter le format :arn:aws:iot:. Assurez-vous qu'ilregion:account-id:*regioncorrespond à votre AWS IoT région etaccount-idà l'identifiant de votre compte client. Pour plus d'informations, voir Prévention des adjoints Cross-service confus.{ "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/*" } } } ] } -
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
Si vos appareils doivent télécharger des fichiers vers 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 clés de chacun des mots clés ${thingName}${jobId}, et ${executionNumber} comme mots clés réservés dans l'keyattribut de l'URL d'espace réservé pour le téléchargement du fichier située dans votre document de travail. L'espace réservé local représentant les mots clés réservés dans l'keyattribut 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 de dépannage généraux
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'keyattribut.
Cet espace réservé à une URL présignée sera converti en une 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 au maximum deux clés de chacun des éléments suivants : ${thingName}${jobId}, et${executionNumber}.
URL présignée utilisant le contrôle de version d'Amazon S3
La protection de l'intégrité d'un fichier stocké dans un compartiment Amazon S3 est essentielle pour garantir des déploiements sécurisés de tâches utilisant ce fichier sur votre parc d'appareils. Grâce à la gestion des versions d'Amazon S3, vous pouvez ajouter un identifiant de version pour chaque variante du fichier stocké dans votre compartiment Amazon S3 afin de suivre chaque version du fichier. Cela donne un aperçu de la version du fichier déployée sur votre parc d'appareils à l'aide de AWS IoT Jobs. Pour plus d'informations sur les compartiments Amazon S3 utilisant la gestion des versions, consultez la section Utilisation de la gestion des versions dans les compartiments Amazon S3.
Si le fichier est stocké dans Amazon S3 et que le document de travail contient un espace réservé à une URL présignée, 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é à l'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 consulter les URL présignées Amazon S3 avant et pendant leur utilisation dans votre document de travail à l'versionIdaide des éléments suivants :
Espace réservé à l'URL présignée Amazon S3 (avant le déploiement de la tâche)
//Virtual-hosted style URL ${aws:iot:s3-presigned-url-v2:https://bucket-name.s3.region-code.amazonaws.com/key-name%3FversionId%3Dversion-id} //Path-style URL ${aws:iot:s3-presigned-url-v2:https://s3.region-code.amazonaws.com/bucket-name/key-name%3FversionId%3Dversion-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%3Dversion1} //Path-style ${aws:iot:s3-presigned-url-v2:https://s3.us-west-2.amazonaws.com/sample-bucket-name/sample-code-file.png%3FversionId%3Dversion1}
Pour plus d'informations sur les URL d'objets hébergées virtuellement et de type chemin Amazon S3, consultez Virtual-hosted-style la section Demandes et requêtes. Path-style
Note
Si vous souhaitez l'ajouter versionId à une URL présignée Amazon S3, celle-ci doit être conforme à la prise en charge du codage des URL. AWS SDK for Java 2.x Pour plus d'informations, consultez la section Modifications apportées à l'analyse des URI Amazon S3 de la version 1 à la version 2.
Différences entre les versions des espaces réservés pour les URL présignées Amazon S3
La liste suivante décrit les différences entre les espaces réservés d'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é à l'URL présignée Amazon S3 n'est
${aws:iot:s3-presigned-url-v1pas compatible.version-id -
L'espace réservé à l'URL présignée Amazon S3
${aws:iot:s3-presigned-url-v1reçoit l'URL Amazon S3 sous forme non codée. L'espace réservé à l'URL présignée Amazon S3${aws:iot:s3-presigned-url-v2nécessite que l'URL Amazon S3 soit codée conformément à la norme Amazon S3 SDK.