Fichier de configuration CLI du Greengrass Development Kit - 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.

Fichier de configuration CLI du Greengrass Development Kit

L'interface de ligne de commande du kit de AWS IoT Greengrass développement (CLI GDK) lit un fichier de configuration gdk-config.json nommé pour créer et publier des composants. Ce fichier de configuration doit exister à la racine du référentiel de composants. Vous pouvez utiliser la commande d'initialisation de la CLI GDK pour initialiser les référentiels de composants avec ce fichier de configuration.

Format de fichier de configuration GDK CLI

Lorsque vous définissez un fichier de configuration GDK CLI pour un composant, vous spécifiez les informations suivantes au format JSON.

gdk_version

Version minimale de la CLI GDK compatible avec ce composant. Cette valeur doit être l'une des versions de la CLI GDK des versions.

component

Configuration de ce composant.

componentName
author

L'auteur ou l'éditeur du composant.

version

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.

build

Configuration à utiliser pour intégrer la source de ce composant en artefacts. Cet objet contient les informations suivantes :

build_system

Le système de compilation à utiliser. Sélectionnez parmi les options suivantes :

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

custom_build_command

(Facultatif) La commande de construction personnalisée à exécuter pour un système de génération personnalisé. Vous devez spécifier ce paramètre si vous spécifiez custom pourbuild_system.

Important

Cette commande doit créer une recette et des artefacts dans les dossiers suivants du dossier des composants. La CLI GDK crée ces dossiers pour vous lorsque vous exécutez la commande component build.

  • Dossier de recettes : greengrass-build/recipes

  • Dossier Artifacts : greengrass-build/artifacts/componentName/componentVersion

    Remplacez ComponentName par le nom du composant et remplacez ComponentVersion par la version du composant ou. NEXT_PATCH

Vous pouvez spécifier 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 ou["cmake", "--build", "build", "--config", "Release"].

Pour voir un exemple de système de construction personnalisé, consultez aws.greengrass.labs.LocalWebServer community componentle GitHub

options

(Facultatif) Options de configuration supplémentaires utilisées pendant le processus de création du composant.

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

excludes

Liste de modèles globaux qui définissent les fichiers à exclure du répertoire des composants lors de la création du fichier zip. Valable uniquement lorsque build_system c'est le caszip.

Note

Dans les versions 1.4.0 et antérieures de la CLI GDK, tout fichier correspondant à une entrée de la liste des exclusions est exclu de tous les sous-répertoires du composant. Pour obtenir le même comportement dans les versions 1.5.0 et ultérieures de la CLI GDK, ajoutez les **/ entrées existantes dans la liste des exclusions. Par exemple, *.txt exclura les fichiers texte du répertoire uniquement ; **/*.txt exclura les fichiers texte de tous les répertoires et sous-répertoires.

Dans les versions 1.5.0 et ultérieures de la CLI GDK, vous pouvez voir un avertissement lors de la création du composant lorsque cela excludes est défini dans le fichier de configuration GDK. Pour désactiver cet avertissement, définissez la variable GDK_EXCLUDES_WARN_IGNORE d'environnement surtrue.

La CLI GDK exclut toujours les fichiers suivants du fichier zip :

  • le fichier gdk-config.json ;

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

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

Les fichiers suivants sont exclus par défaut. Cependant, vous pouvez contrôler lesquels de ces fichiers sont exclus à l'aide de excludes cette option.

  • Tout dossier commençant par le préfixe « test » () test*

  • Tous les fichiers cachés

  • Le dossier node_modules

Si vous spécifiez l'excludesoption, la CLI GDK exclut uniquement les fichiers que vous avez définis avec l'excludesoption. Si vous ne spécifiez pas excludes cette option, la CLI GDK exclut les fichiers et dossiers par défaut indiqués précédemment.

zip_name

Le nom du fichier zip à utiliser lorsque vous créez un artefact zip pendant le processus de génération. Valable uniquement lorsque build_system c'est le caszip. Si le build_system champ est vide, le nom du composant est utilisé pour le nom du fichier zip.

publish

Configuration à utiliser pour publier ce composant sur le AWS IoT Greengrass service.

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.

Cet objet contient les informations suivantes :

bucket

Le nom du compartiment S3 à utiliser pour héberger les artefacts du composant.

region

L'Région AWSendroit où la CLI GDK publie ce composant.

Cette propriété est facultative si vous utilisez GDK CLI v1.3.0 ou version ultérieure.

options

(Facultatif) Options de configuration supplémentaires utilisées lors de la création de la version du composant.

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

file_upload_args

Structure JSON contenant des arguments envoyés à Amazon S3 lors du chargement de fichiers dans un compartiment, tels que des métadonnées et des mécanismes de chiffrement. Pour une liste des arguments autorisés, consultez la S3Transferclasse dans la documentation de Boto3. .

test-e2e

(Facultatif) Configuration à utiliser lors du end-to-end test du composant. Cette fonctionnalité est disponible pour GDK CLI v1.3.0 et versions ultérieures.

build

build_system— Le système de construction à utiliser. L'option par défaut estmaven. Sélectionnez parmi les options suivantes :

  • maven— Exécute la mvn package commande pour créer le module de test. Choisissez cette option pour créer le module de test qui utilise Maven.

  • gradle— Exécute la gradle build commande pour créer le module de test. Choisissez cette option pour le module de test qui utilise Gradle.

gtf_version

(Facultatif) Version du Greengrass Testing Framework (GTF) à utiliser comme dépendance du module de end-to-end test lorsque vous initialisez le projet GDK avec GTF. Cette valeur doit être l'une des versions GTF des versions. La valeur par défaut est GTF version 1.1.0.

gtf_options

(Facultatif) Options de configuration supplémentaires utilisées lors du end-to-end test du composant.

La liste suivante inclut les options que vous pouvez utiliser avec la version 1.1.0 de GTF.

  • additional-plugins— (Facultatif) Plugins Cucumber supplémentaires

  • aws-region— Cible des points de terminaison régionaux spécifiques pour les AWS services. La valeur par défaut correspond à ce que le AWS SDK découvre.

  • credentials-path— Chemin d'accès facultatif aux informations d'identification du AWS profil. Par défaut, ce sont les informations d'identification découvertes sur l'environnement hôte.

  • credentials-path-rotation— Durée de rotation facultative pour les AWS informations d'identification. La valeur par défaut est 15 minutes ouPT15M.

  • csr-path— Le chemin du CSR à l'aide duquel le certificat de l'appareil sera généré.

  • device-mode— L'appareil cible en cours de test. Par défaut, il s'agit d'un appareil local.

  • env-stage— Cible l'environnement de déploiement de Greengrass. Par défaut, c'est la production.

  • existing-device-cert-arn— L'ARN d'un certificat existant que vous souhaitez utiliser comme certificat d'appareil pour Greengrass.

  • feature-path— Fichier ou répertoire contenant des fichiers de fonctionnalités supplémentaires. Par défaut, aucun fichier de fonctionnalités supplémentaire n'est utilisé.

  • gg-cli-version— Remplace la version de la CLI Greengrass. La valeur par défaut est celle trouvée dans. ggc.version

  • gg-component-bucket— Le nom d'un compartiment Amazon S3 existant qui héberge les composants Greengrass.

  • gg-component-overrides— Liste des remplacements de composants Greengrass.

  • gg-persist— Liste des éléments de test à conserver après un essai. Le comportement par défaut est de ne rien conserver. Les valeurs acceptées sont : aws.resourcesinstalled.software, etgenerated.files.

  • gg-runtime— Une liste de valeurs destinées à influencer la manière dont le test interagit avec les ressources de test. Ces valeurs remplacent le paramètre. gg.persist Si la valeur par défaut est vide, cela suppose que toutes les ressources de test sont gérées par scénario de test, y compris le moteur d'exécution Greengrass installé. Les valeurs acceptées sont : aws.resourcesinstalled.software, etgenerated.files.

  • ggc-archive— Le chemin d'accès au composant du noyau Greengrass archivé.

  • ggc-install-root— Répertoire pour installer le composant Greengrass nucleus. La valeur par défaut est test.temp.path et le dossier test run.

  • ggc-log-level— Définissez le niveau logarithmique du noyau Greengrass pour le test. La valeur par défaut est « INFO ».

  • ggc-tes-rolename— Le rôle IAM que AWS IoT Greengrass Core assumera pour accéder aux AWS services. Si aucun rôle portant un nom donné n'existe, un rôle sera créé avec une politique d'accès par défaut.

  • ggc-trusted-plugins— La liste séparée par des virgules des chemins (sur l'hôte) des plugins fiables qui doivent être ajoutés à Greengrass. Pour fournir le chemin sur le DUT lui-même, préfixez-le par « dut : »

  • ggc-user-name— La valeur POSIXUser user:group pour le noyau Greengrass. La valeur par défaut est le nom d'utilisateur actuel connecté.

  • ggc-version— Remplace la version du composant Greengrass nucleus en cours d'exécution. La valeur par défaut est celle trouvée dans ggc.archive.

  • log-level— Niveau de journalisation du test. La valeur par défaut est « INFO ».

  • parallel-config— Ensemble d'index de lots et de nombre de lots sous forme de chaîne JSON. La valeur par défaut de l'index des lots est 0 et le nombre de lots est 1.

  • proxy-url— Configurez tous les tests pour acheminer le trafic via cette URL.

  • tags— Exécutez uniquement des balises de fonctionnalité. Peut être intersecté avec « & »

  • test-id-prefix— Un préfixe commun appliqué à toutes les ressources spécifiques au test, y compris les noms de AWS ressources et les balises. Le préfixe par défaut est « gg ».

  • test-log-path— Répertoire qui contiendra les résultats de l'ensemble du test. La valeur par défaut est « TestResults ».

  • test-results-json— Indicateur permettant de déterminer si le rapport Cucumber JSON résultant est généré écrit sur le disque. La valeur par défaut est true (vrai).

  • test-results-log— Indicateur permettant de déterminer si la sortie de console est générée écrite sur le disque. La valeur par défaut est false.

  • test-results-xml— Indicateur permettant de déterminer si le rapport XML JUnit résultant est généré écrit sur le disque. La valeur par défaut est true (vrai).

  • test-temp-path— Répertoire pour générer des artefacts de test locaux. La valeur par défaut est un répertoire temporaire aléatoire préfixé par gg-testing.

  • timeout-multiplier— Multiplicateur fourni à tous les délais d'expiration des tests. La valeur par défaut est 1,0.

Exemples de fichiers de configuration GDK CLI

Vous pouvez vous référer aux exemples de fichiers de configuration de la CLI GDK suivants pour vous aider à configurer les environnements de composants Greengrass.

Bonjour tout le monde (Python)

Le fichier de configuration de la CLI GDK suivant prend en charge un composant Hello World qui exécute un script Python. Ce fichier de configuration utilise le système de zip compilation pour empaqueter le script Python du composant dans un fichier ZIP que la CLI GDK télécharge sous forme d'artefact.

{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip", "options": { "excludes": [".*"] } }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "some-key": "some-value" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }

Bonjour tout le monde (Java)

Le fichier de configuration GDK CLI suivant prend en charge un composant Hello World qui exécute une application Java. Ce fichier de configuration utilise le système de maven compilation pour empaqueter le code source Java du composant dans un fichier JAR que la CLI GDK télécharge sous forme d'artefact.

{ "component": { "com.example.JavaHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "maven" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "some-key": "some-value" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }

Composantes communautaires

Plusieurs composants communautaires du catalogue de logiciels Greengrass utilisent la CLI GDK. Vous pouvez explorer les fichiers de configuration de la CLI GDK dans les référentiels de ces composants.

Pour afficher les fichiers de configuration de la CLI GDK des composants de la communauté
  1. Exécutez la commande suivante pour répertorier les composants de la communauté qui utilisent la CLI GDK.

    gdk component list --repository

    La réponse indique le nom du GitHub référentiel pour chaque composant de communauté qui utilise la CLI GDK. Chaque référentiel existe au sein de l'awslabsorganisation.

    [2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog. [2022-02-22 17:27:31] INFO - Found '6' component repositories to display. 1. aws-greengrass-labs-database-influxdb 2. aws-greengrass-labs-telemetry-influxdbpublisher 3. aws-greengrass-labs-dashboard-grafana 4. aws-greengrass-labs-dashboard-influxdb-grafana 5. aws-greengrass-labs-local-web-server 6. aws-greengrass-labs-lookoutvision-gstreamer
  2. Ouvrez le GitHub référentiel d'un composant communautaire à l'adresse URL suivante. community-component-nameRemplacez-le par le nom d'un composant communautaire de l'étape précédente.

    https://github.com/awslabs/community-component-name