Publiez des composants à déployer sur vos appareils principaux - AWS IoT Greengrass

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.

Publiez des composants à déployer sur vos appareils principaux

Après avoir créé ou terminé une version d'un composant, vous pouvez le publier sur le AWS IoT Greengrass service. Ensuite, vous pouvez le déployer sur les appareils principaux de Greengrass.

Si vous utilisez le Greengrass Development Kit CLI (GDKCLI) pour développer et créer un composant, vous pouvez utiliser le GDK CLI pour publier le composant dans le. AWS Cloud Sinon, utilisez les commandes shell intégrées et le AWS CLI pour publier le composant.

Vous pouvez également l'utiliser AWS CloudFormation pour créer des composants et d'autres AWS ressources à partir de modèles. Pour plus d'informations, voir Qu'est-ce que c'est AWS CloudFormation ? et AWS::GreengrassV2::ComponentVersiondans le guide de AWS CloudFormation l'utilisateur.

Publier un composant (GDKCLI)

Suivez les instructions de cette section pour publier un composant à l'aide du GDKCLI. Les GDK CLI téléchargements créent des artefacts dans un compartiment S3, mettent à jour l'artefact URIs dans la recette et créent le composant à partir de la recette. Vous spécifiez le compartiment S3 et la région à utiliser dans le fichier GDK CLI de configuration.

Si vous utilisez la GDK CLI version 1.1.0 ou une version ultérieure, vous pouvez spécifier l'--bucketargument pour spécifier le compartiment S3 dans lequel les GDK CLI artefacts du composant sont téléchargés. Si vous ne spécifiez pas cet argument, les GDK CLI téléchargements vers le compartiment S3 dont le nom estbucket-region-accountId, où bucket and region sont les valeurs que vous spécifiez dansgdk-config.json, et accountId est votre Compte AWS identifiant. Le bucket est alors GDK CLI créé s'il n'existe pas.

Important

Les rôles principaux des appareils n'autorisent pas l'accès aux compartiments S3 par défaut. Si c'est la première fois que vous utilisez ce compartiment S3, vous devez ajouter des autorisations au rôle pour permettre aux appareils principaux de récupérer les artefacts des composants de ce compartiment S3. Pour de plus amples informations, veuillez consulter Autoriser l'accès aux compartiments S3 pour les artefacts des composants.

Pour publier un composant Greengrass () GDK CLI
  1. Ouvrez le dossier du composant dans une invite de commande ou dans un terminal.

  2. Si ce n'est pas déjà fait, créez le composant Greengrass. La commande component build produit une recette et des artefacts dans le greengrass-build dossier du dossier des composants. Exécutez la commande suivante.

    gdk component build
  3. Publiez le composant dans le AWS Cloud. La commande de publication du composant télécharge les artefacts du composant sur Amazon S3 et met à jour la recette du composant avec celle de chaque artefact. URI Ensuite, il crée le composant dans le AWS IoT Greengrass service.

    Note

    AWS IoT Greengrass calcule le condensé de chaque artefact lorsque vous créez le composant. Cela signifie que vous ne pouvez pas modifier les fichiers d'artefacts de votre compartiment S3 après avoir créé un composant. Dans ce cas, les déploiements incluant ce composant échoueront, car le résumé du fichier ne correspond pas. Si vous modifiez un fichier d'artefact, vous devez créer une nouvelle version du composant.

    Si vous spécifiez NEXT_PATCH la version du composant dans le fichier de GDK CLI configuration, la prochaine version de correctif qui n'existe pas encore dans le AWS IoT Greengrass service est GDK CLI utilisée.

    Exécutez la commande suivante.

    gdk component publish

    La sortie indique la version du composant GDK CLI créé.

    Après avoir publié le composant, vous pouvez le déployer sur les appareils principaux. Pour de plus amples informations, veuillez consulter Déployer AWS IoT Greengrass des composants sur des appareils.

Publier un composant (commandes shell)

Utilisez la procédure suivante pour publier un composant à l'aide des commandes shell et du AWS Command Line Interface (AWS CLI). Lorsque vous publiez un composant, vous devez effectuer les opérations suivantes :

  1. Publiez les artefacts des composants dans un compartiment S3.

  2. Ajoutez l'Amazon S3 de chaque artefact URI à la recette du composant.

  3. Créez une version de composant à AWS IoT Greengrass partir de la recette du composant.

Note

Chaque version de composant que vous chargez doit être unique. Assurez-vous de télécharger la bonne version du composant, car vous ne pourrez pas la modifier après l'avoir chargée.

Vous pouvez suivre ces étapes pour publier un composant depuis votre ordinateur de développement ou votre appareil principal Greengrass.

Pour publier un composant (commandes shell)
  1. Si le composant utilise une version qui existe dans le AWS IoT Greengrass service, vous devez modifier la version du composant. Ouvrez la recette dans un éditeur de texte, incrémentez la version et enregistrez le fichier. Choisissez une nouvelle version qui reflète les modifications que vous avez apportées au composant.

    Note

    AWS IoT Greengrass utilise des versions sémantiques pour les composants. Les versions sémantiques suivent une majeure. mineur. système de numéro de patch. Par exemple, la version 1.0.0 représente la première version majeure d'un composant. Pour plus d'informations, consultez la spécification de version sémantique.

  2. Si votre composant contient des artefacts, procédez comme suit :

    1. Publiez les artefacts du composant dans un compartiment S3 de votre Compte AWS.

      Astuce

      Nous vous recommandons d'inclure le nom et la version du composant dans le chemin d'accès à l'artefact dans le compartiment S3. Ce schéma de dénomination peut vous aider à conserver les artefacts utilisés par les versions précédentes du composant, afin que vous puissiez continuer à prendre en charge les versions précédentes du composant.

      Exécutez la commande suivante pour publier un fichier d'artefact dans un compartiment S3. Remplacez amzn-s3-demo-bucket par le nom du bucket, puis remplacez artifacts/com.example.HelloWorld/1.0.0/artifact.py avec le chemin d'accès au fichier d'artefact.

      aws s3 cp artifacts/com.example.HelloWorld/1.0.0/artifact.py s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/artifact.py
      Important

      Les rôles principaux des appareils n'autorisent pas l'accès aux compartiments S3 par défaut. Si c'est la première fois que vous utilisez ce compartiment S3, vous devez ajouter des autorisations au rôle pour permettre aux appareils principaux de récupérer les artefacts des composants de ce compartiment S3. Pour de plus amples informations, veuillez consulter Autoriser l'accès aux compartiments S3 pour les artefacts des composants.

    2. Ajoutez une liste nommée Artifacts à la recette du composant si elle n'est pas présente. La Artifacts liste apparaît dans chaque manifeste, qui définit les exigences du composant sur chaque plate-forme qu'il prend en charge (ou les exigences par défaut du composant pour toutes les plateformes).

    3. Ajoutez chaque artefact à la liste des artefacts ou mettez à jour URI les artefacts existants. L'Amazon S3 URI est composé du nom du compartiment et du chemin d'accès à l'objet artefact contenu dans le compartiment. L'Amazon S3 de vos artefacts URIs doit ressembler à l'exemple suivant.

      s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/artifact.py

    Une fois ces étapes terminées, votre recette devrait avoir une Artifacts liste semblable à la suivante.

    JSON
    { ... "Manifests": [ { "Lifecycle": { ... }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/MyGreengrassComponent/1.0.0/artifact.py", "Unarchive": "NONE" } ] } ] }
    Note

    Vous pouvez ajouter l'"Unarchive": "ZIP"option pour un ZIP artefact afin de configurer le logiciel AWS IoT Greengrass principal afin de le décompresser lors du déploiement du composant.

    YAML
    ... Manifests: - Lifecycle: ... Artifacts: - URI: s3://amzn-s3-demo-bucket/artifacts/MyGreengrassComponent/1.0.0/artifact.py Unarchive: NONE
    Note

    Vous pouvez utiliser Unarchive: ZIP cette option pour configurer le logiciel AWS IoT Greengrass Core afin de décompresser un ZIP artefact lors du déploiement du composant. Pour plus d'informations sur l'utilisation ZIP des artefacts dans un composant, consultez la variable artefacts : decompressedPath recette.

    Pour plus d'informations sur les recettes, consultez AWS IoT Greengrass référence de recette de composant.

  3. Utilisez la AWS IoT Greengrass console pour créer un composant à partir du fichier de recette.

    Exécutez la commande suivante pour créer le composant à partir d'un fichier de recette. Cette commande crée le composant et le publie en tant que AWS IoT Greengrass composant privé dans votre Compte AWS. Remplacez path/to/recipeFile avec le chemin d'accès au fichier de recette.

    aws greengrassv2 create-component-version --inline-recipe fileb://path/to/recipeFile

    Copiez le contenu arn de la réponse pour vérifier l'état du composant à l'étape suivante.

    Note

    AWS IoT Greengrass calcule le condensé de chaque artefact lorsque vous créez le composant. Cela signifie que vous ne pouvez pas modifier les fichiers d'artefacts de votre compartiment S3 après avoir créé un composant. Dans ce cas, les déploiements incluant ce composant échoueront, car le résumé du fichier ne correspond pas. Si vous modifiez un fichier d'artefact, vous devez créer une nouvelle version du composant.

  4. Chaque composant du AWS IoT Greengrass service possède un état. Exécutez la commande suivante pour confirmer l'état de la version du composant que vous publiez dans cette procédure. Remplacez com.example.HelloWorld and 1.0.0 avec la version du composant à interroger. Remplacez le arn par celui ARN de l'étape précédente.

    aws greengrassv2 describe-component --arn "arn:aws:greengrass:region:account-id:components:com.example.HelloWorld:versions:1.0.0"

    L'opération renvoie une réponse contenant les métadonnées du composant. Les métadonnées contiennent un status objet qui contient l'état du composant et les éventuelles erreurs, le cas échéant.

    Lorsque l'état du composant est DEPLOYABLE défini, vous pouvez le déployer sur des appareils. Pour de plus amples informations, veuillez consulter Déployer AWS IoT Greengrass des composants sur des appareils.