Création de AWS IoT Greengrass composants - 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.

Création de AWS IoT Greengrass composants

Vous pouvez développer des AWS IoT Greengrass composants personnalisés sur un ordinateur de développement local ou un appareil principal de Greengrass. AWS IoT Greengrass fournit l'interface de ligne de commande du kit de AWS IoT Greengrass développement (CLI GDK) pour vous aider à créer, créer et publier des composants à partir de modèles de composants prédéfinis et de composants communautaires. Vous pouvez également exécuter des commandes shell intégrées pour créer, créer et publier des composants. Choisissez l'une des options suivantes pour créer des composants Greengrass personnalisés :

  • Utiliser la CLI du kit de développement Greengrass

    Utilisez la CLI GDK pour développer des composants sur un ordinateur de développement local. La CLI GDK crée et empaquète le code source des composants dans une recette et des artefacts que vous pouvez publier en tant que composant privé du AWS IoT Greengrass service. Vous pouvez configurer la CLI GDK pour mettre à jour automatiquement la version du composant et les URI des artefacts lorsque vous publiez le composant, de sorte que vous n'avez pas besoin de mettre à jour la recette à chaque fois. Pour développer un composant à l'aide de la CLI GDK, vous pouvez partir d'un modèle ou d'un composant communautaire du catalogue de logiciels Greengrass. Pour de plus amples informations, veuillez consulter AWS IoT GreengrassInterface de ligne de commande du kit de développement.

  • Exécuter des commandes shell intégrées

    Vous pouvez exécuter des commandes shell intégrées pour développer des composants sur un ordinateur de développement local ou sur un périphérique principal Greengrass. Vous utilisez des commandes shell pour copier ou intégrer le code source des composants dans des artefacts. Chaque fois que vous créez une nouvelle version d'un composant, vous devez créer ou mettre à jour la recette avec la nouvelle version du composant. Lorsque vous publiez le composant sur le AWS IoT Greengrass service, vous devez mettre à jour l'URI de chaque artefact de composant de la recette.

Création d'un composant (CLI GDK)

Suivez les instructions de cette section pour créer et créer un composant à l'aide de la CLI GDK.

Pour développer un composant Greengrass (GDK CLI)
  1. Si ce n'est pas déjà fait, installez la CLI GDK sur votre ordinateur de développement. Pour de plus amples informations, veuillez consulter Installation ou mise à jour de l'interface de ligne de commande AWS IoT Greengrass du kit de développement.

  2. Accédez au dossier dans lequel vous souhaitez créer des dossiers de composants.

    Linux or Unix
    mkdir ~/greengrassv2 cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2 cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2 cd ~/greengrassv2
  3. Choisissez un modèle de composant ou un composant de communauté à télécharger. La CLI GDK télécharge le modèle ou le composant communautaire, afin que vous puissiez partir d'un exemple fonctionnel. Utilisez la commande component list pour récupérer la liste des modèles ou des composants communautaires disponibles.

    • Pour répertorier les modèles de composants, exécutez la commande suivante. Chaque ligne de la réponse inclut le nom du modèle et le langage de programmation.

      gdk component list --template
    • Pour répertorier les composants de la communauté, exécutez la commande suivante.

      gdk component list --repository
  4. Créez un dossier de composants et modifiez-le dans lequel la CLI GDK télécharge le modèle ou le composant communautaire. HelloWorldRemplacez-le par le nom du composant ou par un autre nom permettant d'identifier ce dossier de composants.

    Linux or Unix
    mkdir HelloWorld cd HelloWorld
    Windows Command Prompt (CMD)
    mkdir HelloWorld cd HelloWorld
    PowerShell
    mkdir HelloWorld cd HelloWorld
  5. Téléchargez le modèle ou le composant communautaire dans le dossier actuel. Utilisez la commande component init.

    • Pour créer un dossier de composants à partir d'un modèle, exécutez la commande suivante. Remplacez HelloWorldpar le nom du modèle et remplacez python par le nom du langage de programmation.

      gdk component init --template HelloWorld --language python
    • Pour créer un dossier de composants à partir d'un composant communautaire, exécutez la commande suivante. Remplacez ComponentNamepar le nom du composant communautaire.

      gdk component init --repository ComponentName
    Note

    Si vous utilisez GDK CLI v1.0.0, vous devez exécuter cette commande dans un dossier vide. La CLI GDK télécharge le modèle ou le composant communautaire dans le dossier actuel.

    Si vous utilisez la CLI GDK v1.1.0 ou une version ultérieure, vous pouvez spécifier l'--nameargument pour spécifier le dossier dans lequel la CLI GDK télécharge le modèle ou le composant communautaire. Si vous utilisez cet argument, spécifiez un dossier qui n'existe pas. La CLI GDK crée le dossier pour vous. Si vous ne spécifiez pas cet argument, la CLI GDK utilise le dossier actuel, qui doit être vide.

  6. La CLI GDK lit le fichier de configuration de la CLI GDK, nommégdk-config.json, pour créer et publier des composants. Ce fichier de configuration se trouve à la racine du dossier du composant. L'étape précédente crée ce fichier pour vous. Au cours de cette étape, vous effectuez gdk-config.json une mise à jour avec les informations relatives à votre composant. Procédez comme suit :

    1. Ouvrez gdk-config.json dans un éditeur de texte.

    2. (Facultatif) Modifiez le nom du composant. Le nom du composant est la clé de l'componentobjet.

    3. Changez l'auteur du composant.

    4. (Facultatif) Modifiez la version du composant. Spécifiez l’un des éléments suivants :

      • NEXT_PATCH— Lorsque vous choisissez cette option, la CLI GDK définit la version lorsque vous publiez le composant. La CLI GDK interroge le AWS IoT Greengrass service pour identifier la dernière version publiée du composant. Ensuite, il définit la version sur la version de correctif suivante après cette version. Si vous n'avez jamais publié le composant auparavant, la CLI GDK utilise la version1.0.0.

        Si vous choisissez cette option, vous ne pouvez pas utiliser la CLI Greengrass pour déployer et tester localement le composant sur votre ordinateur de développement local qui exécute le logiciel AWS IoT Greengrass Core. Pour activer les déploiements locaux, vous devez plutôt spécifier une version sémantique.

      • Une version sémantique, telle que1.0.0. Les versions sémantiques utilisent une majeure. mineur. système de numérotation des patchs. Pour plus d'informations, consultez la spécification de version sémantique.

        Si vous développez des composants sur un appareil principal Greengrass sur lequel vous souhaitez les déployer et les tester, choisissez cette option. Vous devez créer le composant avec une version spécifique pour créer des déploiements locaux avec la CLI Greengrass.

    5. (Facultatif) Modifiez la configuration de construction du composant. La configuration de construction définit la manière dont la CLI GDK construit la source du composant en artefacts. Choisissez l'une des options suivantes pour build_system :

      • zip— Regroupe le dossier du composant dans un fichier ZIP à définir comme seul artefact du composant. Choisissez cette option pour les types de composants suivants :

        • Composants utilisant des langages de programmation interprétés, tels que Python ou JavaScript.

        • Composants qui empaquetent des fichiers autres que du code, tels que des modèles d'apprentissage automatique ou d'autres ressources.

        La CLI GDK compresse le dossier du composant dans un fichier zip portant le même nom que le dossier du composant. Par exemple, si le nom du dossier du composant estHelloWorld, la CLI GDK crée un fichier zip nomméHelloWorld.zip.

        Note

        Si vous utilisez la version 1.0.0 de la CLI GDK sur un appareil Windows, les noms des dossiers de composants et des fichiers zip ne doivent contenir que des lettres minuscules.

        Lorsque la CLI GDK comprime le dossier du composant dans un fichier zip, elle ignore les fichiers suivants :

        • le fichier gdk-config.json ;

        • Le fichier de recette (recipe.jsonourecipe.yaml)

        • Créez des dossiers, tels que greengrass-build

      • maven— Exécute la mvn clean package commande pour intégrer la source du composant en artefacts. Choisissez cette option pour les composants qui utilisent Maven, tels que les composants Java.

        Sur les appareils Windows, cette fonctionnalité est disponible pour GDK CLI v1.1.0 et versions ultérieures.

      • gradle— Exécute la gradle build commande pour intégrer la source du composant en artefacts. Choisissez cette option pour les composants qui utilisent Gradle. Cette fonctionnalité est disponible pour GDK CLI v1.1.0 et versions ultérieures.

        Le système de gradle construction prend en charge Kotlin DSL en tant que fichier de construction. Cette fonctionnalité est disponible pour GDK CLI v1.2.0 et versions ultérieures.

      • gradlew— Exécute la gradlew commande pour intégrer la source du composant en artefacts. Choisissez cette option pour les composants qui utilisent le Gradle Wrapper.

        Cette fonctionnalité est disponible pour GDK CLI v1.2.0 et versions ultérieures.

      • custom— Exécute une commande personnalisée pour intégrer la source du composant dans une recette et des artefacts. Spécifiez la commande personnalisée dans le custom_build_command paramètre.

    6. Si vous le spécifiez custom pourbuild_system, ajoutez-le custom_build_command à l'buildobjet. Danscustom_build_command, spécifiez une chaîne unique ou une liste de chaînes, chaque chaîne étant un mot dans la commande. Par exemple, pour exécuter une commande de génération personnalisée pour un composant C++, vous pouvez spécifier["cmake", "--build", "build", "--config", "Release"].

    7. 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.

      Modifiez la configuration de publication du composant. Procédez comme suit :

      1. Spécifiez le nom du compartiment S3 à utiliser pour héberger les artefacts des composants.

      2. Spécifiez l' Région AWS endroit où la CLI GDK publie le composant.

    Lorsque vous avez terminé cette étape, le gdk-config.json fichier peut ressembler à l'exemple suivant.

    { "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" }
  7. Mettez à jour le fichier de recette du composant, nommé recipe.yaml ourecipe.json. Procédez comme suit :

    1. Si vous avez téléchargé un modèle ou un composant communautaire qui utilise le système de zip compilation, vérifiez que le nom de l'artefact zip correspond au nom du dossier du composant. La CLI GDK compresse le dossier des composants dans un fichier zip portant le même nom que le dossier des composants. La recette contient le nom de l'artefact zip dans la liste des artefacts du composant et dans les scripts de cycle de vie qui utilisent les fichiers de l'artefact zip. Mettez à jour les Lifecycle définitions Artifacts et de manière à ce que le nom du fichier zip corresponde au nom du dossier du composant. Les exemples de recettes partiels suivants mettent en évidence le nom du fichier zip dans les Lifecycle définitions Artifacts et.

      JSON
      { ... "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
      YAML
      --- ... Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
    2. (Facultatif) Mettez à jour la description du composant, la configuration par défaut, les artefacts, les scripts de cycle de vie et le support de la plate-forme. Pour de plus amples informations, veuillez consulter AWS IoT Greengrass référence de recette de composant.

    Lorsque vous avez terminé cette étape, le fichier de recette peut ressembler aux exemples suivants.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "{COMPONENT_NAME}", "ComponentVersion": "{COMPONENT_VERSION}", "ComponentDescription": "This is a simple Hello World component written in Python.", "ComponentPublisher": "{COMPONENT_AUTHOR}", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "World" } }, "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: "2020-01-25" ComponentName: "{COMPONENT_NAME}" ComponentVersion: "{COMPONENT_VERSION}" ComponentDescription: "This is a simple Hello World component written in Python." ComponentPublisher: "{COMPONENT_AUTHOR}" ComponentConfiguration: DefaultConfiguration: Message: "World" Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
  8. Développez et construisez 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

Lorsque vous êtes prêt à tester votre composant, utilisez la CLI GDK pour le publier sur le AWS IoT Greengrass service. Vous pouvez ensuite déployer le composant sur les appareils principaux de Greengrass. Pour de plus amples informations, veuillez consulter Publiez des composants à déployer sur vos appareils principaux.

Création d'un composant (commandes shell)

Suivez les instructions de cette section pour créer des dossiers de recettes et d'artefacts contenant du code source et des artefacts pour plusieurs composants.

Pour développer un composant Greengrass (commandes shell)
  1. Créez un dossier pour vos composants avec des sous-dossiers pour les recettes et les artefacts. Exécutez les commandes suivantes sur votre appareil principal Greengrass pour créer ces dossiers et accéder au dossier des composants. Remplacez ~/greengrassv2 ou %USERPROFILE% \ greengrassv2 par le chemin d'accès au dossier à utiliser pour le développement local.

    Linux or Unix
    mkdir -p ~/greengrassv2/{recipes,artifacts} cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2\\recipes, %USERPROFILE%\greengrassv2\\artifacts cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2/recipes, ~/greengrassv2/artifacts cd ~/greengrassv2
  2. Utilisez un éditeur de texte pour créer un fichier de recette qui définit les métadonnées, les paramètres, les dépendances, le cycle de vie et les capacités de la plateforme de votre composant. Incluez la version du composant dans le nom du fichier de recette afin de pouvoir identifier quelle recette reflète quelle version de composant. Vous pouvez choisir le format YAML ou JSON pour votre recette.

    Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

    JSON
    nano recipes/com.example.HelloWorld-1.0.0.json
    YAML
    nano recipes/com.example.HelloWorld-1.0.0.yaml
    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.

  3. Définissez la recette de votre composant. Pour de plus amples informations, veuillez consulter AWS IoT Greengrass référence de recette de composant.

    Votre recette peut ressembler à l'exemple de recette Hello World suivant.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.HelloWorld ComponentVersion: '1.0.0' ComponentDescription: My first AWS IoT Greengrass component. ComponentPublisher: Amazon ComponentConfiguration: DefaultConfiguration: Message: world Manifests: - Platform: os: linux Lifecycle: run: | python3 -u {artifacts:path}/hello_world.py "{configuration:/Message}" - Platform: os: windows Lifecycle: run: | py -3 -u {artifacts:path}/hello_world.py "{configuration:/Message}"

    Cette recette exécute un script Python Hello World, qui peut ressembler à l'exemple de script suivant.

    import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message)
  4. Créez un dossier pour la version du composant à développer. Nous vous recommandons d'utiliser un dossier distinct pour les artefacts de chaque version de composant afin de pouvoir identifier les artefacts correspondant à chaque version de composant. Exécutez la commande suivante.

    Linux or Unix
    mkdir -p artifacts/com.example.HelloWorld/1.0.0
    Windows Command Prompt (CMD)
    mkdir artifacts/com.example.HelloWorld/1.0.0
    PowerShell
    mkdir artifacts/com.example.HelloWorld/1.0.0
    Important

    Vous devez utiliser le format suivant pour le chemin du dossier d'artefacts. Incluez le nom et la version du composant que vous spécifiez dans la recette.

    artifacts/componentName/componentVersion/
  5. Créez les artefacts de votre composant dans le dossier que vous avez créé à l'étape précédente. Les artefacts peuvent inclure des logiciels, des images et tout autre fichier binaire utilisé par votre composant.

    Lorsque votre composant est prêt, testez-le.