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 jobs-agent.js
Présigné URLs
Votre document de travail peut contenir un Amazon S3 présigné URL qui pointe vers votre fichier de code (ou un 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 le document présigné URL n'est pas créé lorsque vous créez le document de travail, utilisez plutôt un espace réservé URL dans votre document de travail. Un espace réservé URL ressemble à ce qui 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 le document présigné URL et remplace l'espace réservé URL par le document présigné. URL Votre document de tâche est alors envoyé à l'appareil.
IAMrôle pour accorder l'autorisation de télécharger des fichiers depuis S3
Lorsque vous créez une tâche qui utilise Amazon S3 présignéURLs, vous devez fournir un IAM rôle. 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 spécifier un délai d'expiration facultatif pour le URL présigné. Pour de plus amples informations, veuillez consulter CreateJob.
AWS IoT Autorisez Jobs à assumer votre rôle
-
Accédez au hub Rôles de la IAM console
et choisissez votre rôle. -
Dans l'onglet Relations de confiance, choisissez Modifier la relation de confiance et remplacez le document de politique par le suivantJSON. 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:SourceArn
etaws: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:
. Assurez-vous que celaregion
:account-id
:*region
correspond à votre AWS IoT région etaccount-id
à votre numéro de compte client. Pour plus d’informations, consultez Prévention du problème de l’adjoint confus entre services.{ "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 Permissions et utilisez ce qui suitJSON. 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
/*" } ] }
Présigné URL pour le téléchargement de fichiers
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'URLespace réservé présigné suivant dans votre document de travail :
${aws:iot:s3-presigned-url-v2-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'espace réservé pour le téléchargement de fichiers URL situé 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 URL espace réservé 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
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 se trouver dans l'key
attribut.
Cet URL espace réservé présigné sera converti en téléchargement présigné Amazon S3 URL 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'espace réservé ci-dessusURL, 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}
.
Présigné à URL l'aide de la gestion des versions d'Amazon S3
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.
Si le fichier est stocké dans Amazon S3 et que le document de travail contient un URL espace réservé présigné, AWS IoT Jobs générera un espace présigné URL 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. Ce présigné URL généré dans le document de travail remplacera l'URLespace réservé 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 URL réservé présigné 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%3Dversion-id
} //Path-style URL ${aws:iot:s3-presigned-url-v2:https://s3.region-code
.amazonaws.com/bucket-name
/key-name
%3FversionId%3Dversion-id
}
Amazon S3 présigné URL (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 objets hébergés virtuellement et de type Path sur Amazon S3URLs, consultez la section Requêtes et Virtual-hosted-style requêtes de type PATH.
Note
Si vous souhaitez l'ajouter versionId
à un Amazon S3 présignéURL, il doit être conforme à la prise en charge du URL codage. 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.