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 que
1.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 est
HelloWorld
, 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.json
ourecipe.yaml
) -
Créez des dossiers, tels que
greengrass-build
-
-
maven
— Exécute lamvn 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 lagradle 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 lagradlew
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 lecustom_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 remplacezComponentVersion 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 variableGDK_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.json
ourecipe.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'
excludes
option, la CLI GDK exclut uniquement les fichiers que vous avez définis avec l'excludes
option. Si vous ne spécifiez pasexcludes
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 lebuild_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'
--bucket
argument 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 est
, oùbucket
-region
-accountId
bucket
etregion
sont les valeurs que vous spécifiezgdk-config.json
, etAccountID
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
S3Transfer
classe 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 : 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.resources
installed.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.resources
installed.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é
-
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'
awslabs
organisation.[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
-
Ouvrez le GitHub référentiel d'un composant communautaire à l'adresse URL suivante.
community-component-name
Remplacez-le par le nom d'un composant communautaire de l'étape précédente.https://github.com/awslabs/
community-component-name