

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.

# Commandes Greengrass CLI
<a name="gg-cli-reference"></a>

La CLI Greengrass fournit une interface de ligne de commande pour interagir localement avec votre appareil AWS IoT Greengrass principal. Les commandes Greengrass CLI utilisent le format suivant.

```
$ greengrass-cli <command> <subcommand> [arguments]
```

Par défaut, le fichier `greengrass-cli` exécutable du `/greengrass/v2/bin/` dossier interagit avec la version du logiciel AWS IoT Greengrass Core exécutée dans le `/greengrass/v2` dossier. Si vous appelez un exécutable qui n'est pas placé à cet emplacement, ou si vous souhaitez interagir avec le logiciel AWS IoT Greengrass Core à un autre emplacement, vous devez utiliser l'une des méthodes suivantes pour spécifier explicitement le chemin racine du logiciel AWS IoT Greengrass Core avec lequel vous souhaitez interagir :<a name="greengrass-cli-set-root-path"></a>
+ Définissez la variable d'environnement `GGC_ROOT_PATH` sur `/greengrass/v2`.
+ Ajoutez l'`--ggcRootPath /greengrass/v2`argument à votre commande comme indiqué dans l'exemple suivant.

  ```
  greengrass-cli --ggcRootPath /greengrass/v2 <command> <subcommand> [arguments]
  ```

Vous pouvez utiliser les arguments suivants avec n'importe quelle commande :
+ À utiliser `--help` pour obtenir des informations sur une commande Greengrass CLI spécifique. 
+ À utiliser `--version` pour obtenir des informations sur la version de Greengrass CLI.

Cette section décrit les commandes de la CLI Greengrass et fournit des exemples de ces commandes. Le synopsis de chaque commande montre ses arguments et leur utilisation. Les arguments facultatifs sont indiqués entre crochets.

**Topics**
+ [composant](gg-cli-component.md)
+ [déploiement](gg-cli-deployment.md)
+ [journaux](gg-cli-logs.md)
+ [get-debug-password](gg-cli-get-debug-password.md)

# composant
<a name="gg-cli-component"></a>

Utilisez la `component` commande pour interagir avec les composants locaux de votre appareil principal. 

**Sous-commandes**
+ [détails](#component-details)
+ [liste](#component-list)
+ [redémarrer](#component-restart)
+ [stop](#component-stop)

## détails
<a name="component-details"></a>

Récupérez la version, le statut et la configuration d'un composant. 

**Résumé**  

```
greengrass-cli component details --name <component-name> 
```

**Arguments**  
`--name`,`-n`. Le nom du composant.

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli component details --name MyComponent 

Component Name: MyComponent 
Version: 1.0.0
State: RUNNING
Configuration: null
```

## liste
<a name="component-list"></a>

Récupérez le nom, la version, l'état et la configuration de chaque composant installé sur le périphérique.

**Résumé**  

```
greengrass-cli component list
```

**Arguments**  
Aucun

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli component list

Components currently running in Greengrass:
Component Name: FleetStatusService
Version: 0.0.0
State: RUNNING
Configuration: {"periodicUpdateIntervalSec":86400.0}
Component Name: UpdateSystemPolicyService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Nucleus
Version: 2.0.0
State: FINISHED
Configuration: {"awsRegion":"region","runWithDefault":{"posixUser":"ggc_user:ggc_group"},"telemetry":{}}
Component Name: DeploymentService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: TelemetryAgent
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Cli
Version: 2.0.0
State: RUNNING
Configuration: {"AuthorizedPosixGroups":"ggc_user"}
```

## redémarrer
<a name="component-restart"></a>

Redémarrez les composants.

**Résumé**  

```
greengrass-cli component restart --names <component-name>,...
```

**Arguments**  
`--names`,`-n`. Le nom du composant. Au moins un nom de composant est requis. Vous pouvez spécifier des noms de composants supplémentaires, en séparant chaque nom par une virgule.

**Sortie**  
Aucun

## stop
<a name="component-stop"></a>

Arrêtez d'exécuter les composants. 

**Résumé**  

```
greengrass-cli component stop --names <component-name>,...
```

**Arguments**  
`--names`,`-n`. Le nom du composant. Au moins un nom de composant est requis. Vous pouvez spécifier des noms de composants supplémentaires si nécessaire, en séparant chaque nom par une virgule.

**Sortie**  
Aucun

# déploiement
<a name="gg-cli-deployment"></a>

Utilisez la `deployment` commande pour interagir avec les composants locaux de votre appareil principal. 

Pour suivre la progression d'un déploiement local, utilisez la `status` sous-commande. Vous ne pouvez pas suivre la progression d'un déploiement local à l'aide de la console.

**Sous-commandes**
+ [créer](#deployment-create)
+ [annuler](#deployment-cancel)
+ [liste](#deployment-list)
+ [status](#deployment-status)

## créer
<a name="deployment-create"></a>

Créez ou mettez à jour un déploiement local à l'aide de recettes de composants, d'artefacts et d'arguments d'exécution spécifiés.

**Résumé**  

```
greengrass-cli deployment create 
    --recipeDir path/to/component/recipe
    [--artifactDir path/to/artifact/folder ]
    [--update-config {component-configuration}]
    [--groupId <thing-group>]
    [--merge "<component-name>=<component-version>"]...
    [--runWith "<component-name>:posixUser=<user-name>[:<group-name>]"]...
    [--systemLimits "{component-system-resource-limits}]"]...
    [--remove <component-name>,...]
    [--failure-handling-policy <policy name[ROLLBACK, DO_NOTHING]>]
```

**Arguments**  
+ `--recipeDir`,`-r`. Le chemin complet du dossier contenant les fichiers de recette des composants.
+ `--artifactDir`,`-a`. Le chemin complet du dossier contenant les fichiers d'artefacts que vous souhaitez inclure dans votre déploiement. Le dossier des artefacts doit contenir la structure de répertoire suivante :

  ```
  /path/to/artifact/folder/<component-name>/<component-version>/<artifacts>
  ```
+ `--update-config`,`-c`. Les arguments de configuration pour le déploiement, fournis sous forme de chaîne JSON ou de fichier JSON. La chaîne JSON doit être au format suivant : 

  ```
  { \
    "componentName": { \ 
      "MERGE": {"config-key": "config-value"}, \
      "RESET": ["path/to/reset/"] \
    } \
  }
  ```

  `MERGE`et `RESET` distinguent les majuscules des minuscules et doivent être en majuscules.
+ `--groupId`,`-g`. Le groupe d'objets cible pour le déploiement.
+ `--merge`,`-m`. Le nom et la version du composant cible que vous souhaitez ajouter ou mettre à jour. Vous devez fournir les informations du composant dans le format`<component>=<version>`. Utilisez un argument distinct pour chaque composant supplémentaire à spécifier. Si nécessaire, utilisez l'`--runWith`argument pour fournir les `windowsUser` informations `posixUser``posixGroup`, et pour exécuter le composant.
+ `--runWith`. Les `posixUser` `windowsUser` informations et relatives à l'exécution d'un composant générique ou Lambda. `posixGroup` Vous devez fournir ces informations dans le format`<component>:{posixUser|windowsUser}=<user>[:<=posixGroup>]`. Par exemple, vous pouvez spécifier **HelloWorld:posixUser=ggc\$1user:ggc\$1group** ou**HelloWorld:windowsUser=ggc\$1user**. Utilisez un argument distinct pour chaque option supplémentaire à spécifier.

  Pour de plus amples informations, veuillez consulter [Configurer l'utilisateur qui exécute les composants](configure-greengrass-core-v2.md#configure-component-user).
+ `--systemLimits`. Les limites de ressources du système à appliquer aux processus des composants Lambda génériques et non conteneurisés sur le périphérique principal. Vous pouvez configurer la quantité maximale d'utilisation du processeur et de la RAM que les processus de chaque composant peuvent utiliser. Spécifiez un objet JSON sérialisé ou un chemin d'accès à un fichier JSON. L'objet JSON doit avoir le format suivant.

  ```
  {  \
    "componentName": { \ 
      "cpus": cpuTimeLimit, \
      "memory": memoryLimitInKb \
    } \
  }
  ```

  Vous pouvez configurer les limites de ressources système suivantes pour chaque composant :
  + `cpus`— <a name="system-resource-limits-cpu-definition-this"></a>Le temps processeur maximal que les processus de ce composant peuvent utiliser sur le périphérique principal. Le temps processeur total d'un appareil principal est équivalent au nombre de cœurs processeurs de l'appareil. Par exemple, sur un périphérique principal doté de 4 cœurs de processeur, vous pouvez définir cette valeur `2` pour limiter les processus de ce composant à 50 % d'utilisation de chaque cœur de processeur. Sur un appareil doté d'un cœur de processeur, vous pouvez définir cette valeur `0.25` pour limiter les processus de ce composant à 25 % d'utilisation du processeur. Si vous définissez cette valeur sur un nombre supérieur au nombre de cœurs de processeur, le logiciel AWS IoT Greengrass Core ne limite pas l'utilisation du processeur par le composant. 
  + `memory`— <a name="system-resource-limits-memory-definition-this"></a>La quantité maximale de RAM (en kilo-octets) que les processus de ce composant peuvent utiliser sur le périphérique principal. 

  Pour de plus amples informations, veuillez consulter [Configuration des limites de ressources système pour les composants](configure-greengrass-core-v2.md#configure-component-system-resource-limits).

  Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du [composant Greengrass nucleus et de la CLI Greengrass](greengrass-nucleus-component.md) sur les appareils principaux Linux. AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux. 
+ `--remove`. Nom du composant cible que vous souhaitez supprimer d'un déploiement local. Pour supprimer un composant qui a été fusionné d'un déploiement dans le cloud, vous devez fournir l'ID de groupe du groupe d'objets cible au format suivant :

------
#### [ Greengrass nucleus v2.4.0 and later ]

  ```
  --remove <component-name> --groupId <group-name>
  ```

------
#### [ Earlier than v2.4.0 ]

  ```
  --remove <component-name> --groupId thinggroup/<group-name>
  ```

------
+ `--failure-handling-policy`. Définit l'action entreprise en cas d'échec d'un déploiement. Vous pouvez définir deux actions :
  + `ROLLBACK` – 
  + `DO_NOTHING` – 

  Cette fonctionnalité est disponible pour les versions 2.11.0 et ultérieures du. [Noyau de Greengrass](greengrass-nucleus-component.md)

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli deployment create \
    --merge MyApp1=1.0.0 \
    --merge MyApp2=1.0.0 --runWith MyApp2:posixUser=ggc_user \
    --remove MyApp3 \
    --recipeDir recipes/ \ 
    --artifactDir artifacts/

Local deployment has been submitted! Deployment Id: 44d89f46-1a29-4044-ad89-5151213dfcbc
```

## annuler
<a name="deployment-cancel"></a>

Annule le déploiement spécifié.

Résumé  

```
greengrass-cli deployment cancel
    -i <deployment-id>
```

Arguments  
`-i`. Identifiant unique du déploiement à annuler. L'ID de déploiement est renvoyé dans la sortie de la `create` commande.

Sortie  
+ Aucun

## liste
<a name="deployment-list"></a>

Récupérez l'état des 10 derniers déploiements locaux.

**Résumé**  

```
greengrass-cli deployment list
```

**Arguments**  
Aucun

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande. En fonction de l'état de votre déploiement, la sortie affiche l'une des valeurs d'état suivantes : `IN_PROGRESS``SUCCEEDED`, ou`FAILED`.  

```
$ sudo greengrass-cli deployment list

44d89f46-1a29-4044-ad89-5151213dfcbc: SUCCEEDED
Created on: 6/27/23 11:05 AM
```

## status
<a name="deployment-status"></a>

Récupérez l'état d'un déploiement spécifique.

**Résumé**  

```
greengrass-cli deployment status -i <deployment-id>
```

**Arguments**  
`-i`. ID du déploiement.

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande. En fonction de l'état de votre déploiement, la sortie affiche l'une des valeurs d'état suivantes : `IN_PROGRESS``SUCCEEDED`, ou`FAILED`.  

```
$ sudo greengrass-cli deployment status -i 44d89f46-1a29-4044-ad89-5151213dfcbc

44d89f46-1a29-4044-ad89-5151213dfcbc: FAILED
Created on: 6/27/23 11:05 AM
Detailed Status: <Detailed deployment status>
Deployment Error Stack: List of error codes
Deployment Error Types: List of error types
Failure Cause: Cause
```

# journaux
<a name="gg-cli-logs"></a>

Utilisez la `logs` commande pour analyser les journaux Greengrass sur votre appareil principal. 

**Sous-commandes**
+ [get](#logs-get)
+ [listez les mots clés](#logs-list-keywords)
+ [list-log-files](#logs-list-log-files)

## get
<a name="logs-get"></a>

Collectez, filtrez et visualisez les fichiers journaux de Greengrass. Cette commande prend uniquement en charge les fichiers journaux au format JSON. Vous pouvez spécifier le [format de journalisation](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) dans la configuration du noyau.

**Résumé**  

```
greengrass-cli logs get
    [--log-dir path/to/a/log/folder]
    [--log-file path/to/a/log/file]
    [--follow true | false ]
    [--filter <filter> ]
    [--time-window <start-time>,<end-time> ]
    [--verbose ]
    [--no-color ]
    [--before <value> ]
    [--after <value> ]
    [--syslog ]
    [--max-long-queue-size <value> ]
```

**Arguments**  
+ `--log-dir`,`-ld`. Le chemin d'accès au répertoire dans lequel vérifier la présence de fichiers journaux, tels que**`/greengrass/v2`/logs**. Ne pas utiliser avec`--syslog`. Utilisez un argument distinct pour chaque répertoire supplémentaire à spécifier. Vous devez utiliser au moins l'un des `--log-dir` ou`--log-file`. Vous pouvez également utiliser les deux arguments dans une seule commande. 
+ `--log-file`,`-lf`. Les chemins d'accès aux répertoires de journaux que vous souhaitez utiliser. Utilisez un argument distinct pour chaque répertoire supplémentaire à spécifier. Vous devez utiliser au moins l'un des `--log-dir` ou`--log-file`. Vous pouvez également utiliser les deux arguments dans une seule commande.
+ `--follow`,`-fol`. Afficher les mises à jour du journal dès qu'elles se produisent. Greengrass CLI continue de fonctionner et lit les journaux spécifiés. Si vous spécifiez une fenêtre temporelle, Greengrass CLI arrête de surveiller les journaux une fois toutes les fenêtres temporelles terminées.
+ `--filter`,`-f`. Le mot clé, les expressions régulières ou la paire clé-valeur à utiliser comme filtre. Fournissez cette valeur sous forme de chaîne, d'expression régulière ou de paire clé-valeur. Utilisez un argument distinct pour chaque filtre supplémentaire à spécifier. 

  Lors de l'évaluation, plusieurs filtres spécifiés dans un seul argument sont séparés par des opérateurs OR, et les filtres spécifiés dans des arguments supplémentaires sont combinés avec des opérateurs ET. Par exemple, si votre commande inclut`--filter "installed" --filter "name=alpha,name=beta"`, la CLI Greengrass filtrera et affichera les messages de journal contenant à la fois le mot clé `installed` et une `name` clé contenant les valeurs `alpha` ou. `beta`
+ `--time-window`,`-t`. La fenêtre temporelle pour laquelle les informations du journal doivent être affichées. Vous pouvez utiliser à la fois des horodatages exacts et des décalages relatifs. Vous devez fournir ces informations dans le format`<begin-time>,<end-time>`. Si vous ne spécifiez ni l'heure de début ni l'heure de fin, la valeur de cette option est par défaut la date et l'heure actuelles du système. Utilisez un argument distinct pour chaque fenêtre temporelle supplémentaire à spécifier. 

  Greengrass CLI prend en charge les formats d'horodatage suivants :
  + `yyyy-MM-DD`, par exemple,`2020-06-30`. L'heure par défaut est 00:00:00 lorsque vous utilisez ce format.

    `yyyyMMDD`, par exemple,`20200630`. L'heure par défaut est 00:00:00 lorsque vous utilisez ce format.

    `HH:mm:ss`, par exemple,`15:30:45`. La date par défaut est la date système actuelle lorsque vous utilisez ce format.

    `HH:mm:ssSSS`, par exemple,`15:30:45`. La date correspond par défaut à la date système actuelle lorsque vous utilisez ce format.

    `YYYY-MM-DD'T'HH:mm:ss'Z'`, par exemple,`2020-06-30T15:30:45Z`.

    `YYYY-MM-DD'T'HH:mm:ss`, par exemple,`2020-06-30T15:30:45`. 

    `yyyy-MM-dd'T'HH:mm:ss.SSS`, par exemple,`2020-06-30T15:30:45.250`.

  Les décalages relatifs spécifient un décalage de période par rapport à l'heure actuelle du système. Greengrass CLI prend en charge le format suivant pour les décalages relatifs :. `+|-[<value>h|hr|hours][valuem|min|minutes][value]s|sec|seconds` 

  Par exemple, l'argument suivant pour spécifier une fenêtre horaire comprise entre 1 heure et 2 heures 15 minutes avant l'heure actuelle`--time-window -2h15min,-1hr`.
+ `--verbose`. Afficher tous les champs des messages du journal. Ne pas utiliser avec`--syslog`.
+ `--no-color`,`-nc`. Supprimez le code couleur. Le code couleur par défaut pour les messages du journal utilise du texte rouge en gras. Supporte uniquement les terminaux de type Unix car il utilise des séquences d'échappement ANSI.
+ `--before`,`-b`. Le nombre de lignes à afficher avant une entrée de journal correspondante. La valeur par défaut est 0.
+ `--after`,`-a`. Le nombre de lignes à afficher après une entrée de journal correspondante. La valeur par défaut est 0.
+ `--syslog`. Traitez tous les fichiers journaux à l'aide du protocole syslog défini par. RFC3164 Ne pas utiliser avec `--log-dir` et`--verbose`. Le protocole Syslog utilise le format suivant :. `"<$Priority>$Timestamp $Host $Logger ($Class): $Message"` Si vous ne spécifiez pas de fichier journal, Greengrass CLI lit les messages de journal depuis les emplacements suivants : `/var/log/messages``/var/log/syslog`, ou le. `/var/log/system.log` 

  AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux. 
+ `--max-log-queue-size`,`-m`. Nombre maximal d'entrées de journal à allouer à la mémoire. Utilisez cette option pour optimiser l'utilisation de la mémoire. La valeur par défaut est 100.

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli logs get --verbose \
    --log-file /greengrass/v2/logs/greengrass.log \
    --filter deployment,serviceName=DeploymentService \
    --filter level=INFO \
    --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22

2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING}
2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc
```

## listez les mots clés
<a name="logs-list-keywords"></a>

Afficher les mots-clés suggérés que vous pouvez utiliser pour filtrer les fichiers journaux.

**Résumé**  

```
greengrass-cli logs list-keywords [arguments]
```

**Arguments**  
Aucun

**Sortie**  
Les exemples suivants montrent le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli logs list-keywords

Here is a list of suggested keywords for Greengrass log:
level=$str
thread=$str
loggerName=$str
eventType=$str
serviceName=$str
error=$str
```

```
$ sudo greengrass-cli logs list-keywords --syslog

Here is a list of suggested keywords for syslog:
priority=$int
host=$str
logger=$str
class=$str
```

## list-log-files
<a name="logs-list-log-files"></a>

Afficher les fichiers journaux situés dans un répertoire spécifié.

**Résumé**  

```
greengrass-cli logs list-log-files [arguments]
```

**Arguments**  
`--log-dir`,`-ld`. Le chemin d'accès au répertoire dans lequel vérifier la présence de fichiers journaux. 

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/

/greengrass/v2/logs/aws.greengrass.Nucleus.log
/greengrass/v2/logs/main.log
/greengrass/v2/logs/greengrass.log
Total 3 files found.
```

# get-debug-password
<a name="gg-cli-get-debug-password"></a>

Utilisez la `get-debug-password` commande pour imprimer un mot de passe généré aléatoirement pour le [composant de console de débogage local](local-debug-console-component.md) (`aws.greengrass.LocalDebugConsole`). Le mot de passe expire 8 heures après sa création.

**Résumé**  

```
greengrass-cli get-debug-password
```

**Arguments**  
Aucun

**Sortie**  
L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.  

```
$ sudo greengrass-cli get-debug-password

Username: debug
Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
Password expires at: 2021-04-01T17:01:43.921999931-07:00
The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console.
Before you bypass the security warning, verify that the certificate fingerprint matches the following fingerprints.
SHA-256: 15 0B 2C E2 54 8B 22 DE 08 46 54 8A B1 2B 25 DE FB 02 7D 01 4E 4A 56 67 96 DA A6 CC B1 D2 C4 1B
SHA-1: BC 3E 16 04 D3 80 70 DA E0 47 25 F9 90 FA D6 02 80 3E B5 C1
```