Gestion des tâches - 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.

Gestion des tâches

Utilisez des tâches pour informer les appareils de la mise à jour d'un logiciel ou d'un microprogramme. Vous pouvez utiliserAWS IoTconsole, leGestion des tâches et opérations de l'API de contrôle, leAWS Command Line Interface, ou leAWSSDKpour créer et gérer des emplois.

Signature de code pour les emplois

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 duAWS CLI. Pour obtenir des instructions, voirCréez et gérez des tâches à l'aide duAWS CLI.

Pour plus d'informations, voirÀ quoi sert la signature de codeAWS IoT?.

Document de travail

Avant de créer une tâche, vous devez créer un document de tâche. Si vous utilisez la signature de code pourAWS IoT, vous devez charger votre document de travail dans un compartiment Amazon S3 versionné. Pour plus d'informations sur la création d'un bucket Amazon S3 et le chargement de fichiers vers celui-ci, consultezDémarrez avec Amazon Simple Storage Servicedans leGuide de démarrage d'Amazon S3.

Astuce

Pour des exemples de documents de travail, consultez lejobs-agent.jsexemple dans leAWS IoTSDK pourJavaScript.

URL présignées

Votre document de travail peut contenir une URL Amazon S3 présignée pointant vers votre fichier de code (ou un autre fichier). Les URL Amazon S3 présignées ne sont valides que pour une durée limitée et sont générées lorsqu'un appareil demande un document de travail. Étant donné que l'URL présignée n'est pas créée lorsque vous créez le document de travail, utilisez plutôt une URL de remplacement dans votre document de travail. Une URL d'espace réservé ressemble à ce qui suit :

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

où :

  • seauest le compartiment Amazon S3 qui contient le fichier de code.

  • fichier de codeest la clé Amazon S3 du fichier de code.

Lorsqu'un périphérique demande le document de tâche, AWS IoT génère l'URL pré-signée et remplace l'URL d'espace réservé par l'URL pré-signée. Votre document de tâche est alors envoyé à l'appareil.

Rôle IAM pour accorder l'autorisation de télécharger des 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 autoriser le téléchargement de fichiers depuis le compartiment Amazon S3 dans lequel les données ou 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 plus d'informations, voirCreateJob.

SubventionAWS IoTJobs : autorisation d'assumer votre rôle
  1. Accédez auHub de rôles de la console IAMet choisissez votre rôle.

  2. Sur leRelations de confianceonglet, choisissezModifier la relation de confianceet remplacez le document de politique par le code JSON suivant. Choisissez Update Trust Policy (Mettre à jour la politique d'approbation).

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. Pour vous protéger contre le problème de confusion des adjoints, ajoutez les clés contextuelles de la condition globaleaws:SourceArnetaws:SourceAccountà la politique.

    Important

    Votreaws:SourceArndoit respecter le format :arn:aws:iot:region:account-id:*. Assurez-vous querégioncorrespond à votreAWS IoTRégion etidentifiant de comptecorrespond à l'identifiant de votre compte client. Pour plus d'informations, voirPrévention de la confusion entre les 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/*" } } } ] }
  4. Si votre travail utilise un document de travail qui est un objet Amazon S3, choisissezAutorisationset 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/*" } ] }