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 la CLI du kit de développement Greengrass (CLI GDK) pour développer et créer un composant, vous pouvez utiliser la CLI GDK pour publier le composant sur 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 (GDK CLI)

Suivez les instructions de cette section pour publier un composant à l'aide de la CLI GDK. La CLI GDK télécharge les artefacts de construction dans un compartiment S3, met à jour les URI des artefacts dans la recette et crée le composant à partir de la recette. Vous spécifiez le compartiment S3 et la région à utiliser dans le fichier de configuration de la CLI GDK.

Si vous utilisez la CLI GDK v1.1.0 ou une version ultérieure, vous pouvez spécifier l'--bucketargument pour spécifier le compartiment S3 dans lequel la CLI GDK télécharge les artefacts du composant. Si vous ne spécifiez pas cet argument, la CLI GDK est chargée dans le compartiment S3 dont le nom estbucket-region-accountId, où bucket et region sont les valeurs que vous spécifiezgdk-config.json, et AccountID est votre ID. Compte AWS La CLI GDK crée le bucket 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 plus d’informations, consultez 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 l'URI de chaque artefact. Il crée ensuite 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 configuration de la CLI GDK, la CLI GDK utilise la version de correctif suivante qui n'existe pas encore dans le AWS IoT Greengrass service.

    Exécutez la commande suivante.

    gdk component publish

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

    Après avoir publié le composant, vous pouvez le déployer sur les appareils principaux. Pour plus d’informations, consultez 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, procédez comme suit :

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

  2. Ajoutez l'URI Amazon S3 de chaque artefact à 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 DOC-EXAMPLE-BUCKET par le nom du bucket et 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://DOC-EXAMPLE-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 plus d’informations, consultez 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 l'URI des artefacts existants. L'URI Amazon S3 est composé du nom du compartiment et du chemin d'accès à l'objet artefact contenu dans le compartiment. Les URI Amazon S3 de vos artefacts doivent ressembler à l'exemple suivant.

      s3://DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py", "Unarchive": "NONE" } ] } ] }
    Note

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

    YAML
    ... Manifests: - Lifecycle: ... Artifacts: - URI: s3://DOC-EXAMPLE-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 artefact ZIP lors du déploiement du composant. Pour plus d'informations sur l'utilisation des artefacts ZIP dans un composant, consultez la variable de recette artifacts:DecompressedPath.

    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 par le chemin du 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. HelloWorldet 1.0.0 avec la version du composant à interroger. Remplacez le arn par l'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 plus d'informations, voir Déployer AWS IoT Greengrass des composants sur des appareils.