

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass
<a name="greengrass-development-kit-cli"></a>

A interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass (CLI do GDK) fornece recursos que ajudam você a desenvolver [componentes personalizados do Greengrass.](develop-greengrass-components.md) É possível usar a CLI do GDK para criar, construir e publicar componentes personalizados. Ao criar um repositório de componentes com a CLI do GDK, você pode começar a partir de um modelo ou de um componente da comunidade do [Catálogo de Software do Greengrass](greengrass-software-catalog.md). Em seguida, você pode escolher um sistema de compilação que empacote arquivos em ZIP, use um script de compilação do Maven ou do Gradle ou execute um comando de compilação personalizado. Depois de criar um componente, você pode usar a CLI do GDK para publicá-lo no serviço do AWS IoT Greengrass. Assim, você pode usar o console ou a API do AWS IoT Greengrass para implantar o componente em seus dispositivos principais do Greengrass.

Ao desenvolver componentes do Greengrass sem a CLI do GDK, você deve atualizar os URIs da versão e do artefato no [arquivo de fórmula do componente](component-recipe-reference.md) sempre que criar uma nova versão dele. Quando você usa a CLI do GDK, ela pode atualizar automaticamente os URIs de versão e artefato sempre que você publica uma nova versão do componente.

A CLI do GDK é de código aberto e está disponível no GitHub. Você pode personalizar e estender a CLI do GDK para atender às suas necessidades de desenvolvimento de componentes. Convidamos você a criar questões e pull requests no repositório do GitHub. Você pode encontrar a fonte da CLI do GDK no seguinte link: [https://github.com/aws-greengrass/aws-greengrass-gdk-cli.](https://github.com/aws-greengrass/aws-greengrass-gdk-cli)

## Pré-requisitos
<a name="gdk-cli-prerequisites"></a>

Para instalar e usar a CLI do kit de desenvolvimento do Greengrass, você precisa do seguinte:
+ Um Conta da AWS. Se você não tiver uma, consulte [Configurar um Conta da AWS](setting-up.md#set-up-aws-account).
+ Um computador de desenvolvimento semelhante ao Windows, macOS ou Unix com conexão à Internet.
+ Para a CLI do GDK versão 1.1.0 ou posterior, o [Python](https://www.python.org/downloads/) 3.6 ou posterior, instalado no computador de desenvolvimento.

  Para a CLI do GDK versão 1.0.0, o [Python](https://www.python.org/downloads/) 3.8 ou posterior, instalado no computador de desenvolvimento.
+ O [Git](https://git-scm.com/) instalado no seu computador de desenvolvimento.
+ <a name="development-component-aws-cli-prerequisite"></a>A AWS Command Line Interface(AWS CLI) instalada e configurada com credenciais no computador de desenvolvimento. Para mais informações, consulte [Instalar, atualizar e desinstalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) e [Configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) no *Guia do usuário da AWS Command Line Interface*.
**nota**  
Se você usa um Raspberry Pi ou outro dispositivo ARM de 32 bits, instale a AWS CLI V1. AWS CLI A V2 não está disponível para dispositivos ARM de 32 bits. Para obter mais informações, consulte [Instalar, atualizar e desinstalar a AWS CLI versão 1](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html).
+ Para usar a CLI do GDK para publicar componentes no serviço do AWS IoT Greengrass, você precisa das seguintes permissões:
  + `s3:CreateBucket`
  + `s3:GetBucketLocation`
  + `s3:PutObject`
  + `greengrass:CreateComponentVersion`
  + `greengrass:ListComponentVersions`
+ Para usar a CLI do GDK para criar um componente cujos artefatos existem em um bucket do S3 e não no sistema de arquivos local, você precisa das seguintes permissões:
  + `s3:ListBucket`

  Este atributo está disponível para a CLI do GDK v1.1.0 e posteriores.

## Changelog
<a name="gdk-cli-changelog"></a>

A tabela a seguir descreve as alterações em cada versão da CLI do GDK. Para mais informações, consulte a [Página de lançamentos da CLI do GDK](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases) no GitHub.


|  **Versão**  |  **Alterações**  | 
| --- | --- | 
|  1.6.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.6.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.6.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.5.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.4.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.0.0  |  Versão inicial.  | 

# Instale ou atualize a interface de linha de comando do kit de AWS IoT Greengrass desenvolvimento
<a name="install-greengrass-development-kit-cli"></a>

A interface de linha de comando do kit de AWS IoT Greengrass desenvolvimento (GDK CLI) é construída em Python, então você pode `pip` usá-la para instalá-la em seu computador de desenvolvimento.

**dica**  
[Você também pode instalar a CLI do GDK em ambientes virtuais Python, como venv.](https://docs.python.org/3/library/venv.html#module-venv) Para obter mais informações, consulte [Ambientes e pacotes virtuais](https://docs.python.org/3/tutorial/venv.html) na documentação do *Python 3*.

**Para instalar ou atualizar a CLI do GDK:**

1. Execute o comando a seguir para instalar a versão mais recente da CLI do GDK no seu [repositório no GitHub](https://github.com/aws-greengrass/aws-greengrass-gdk-cli).

   ```
   python3 -m pip install -U git+https://github.com/aws-greengrass/aws-greengrass-gdk-cli.git@v1.6.2
   ```
**nota**  
Para instalar uma versão específica da CLI do GDK, substitua *versionTag* pela tag de versão a ser instalada. Você pode ver as tags de versão da CLI do GDK em seu [repositório do GitHub](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/tags).  

   ```
   python3 -m pip install -U git+https://github.com/aws-greengrass/aws-greengrass-gdk-cli.git@versionTag
   ```

1. <a name="gdk-cli-verify-installation"></a>Execute o comando a seguir para verificar se a instalação da CLI do GDK foi bem-sucedida.

   ```
   gdk --help
   ```

   Se o comando `gdk` não for encontrado, adicione sua pasta ao PATH.
   + Em dispositivos Linux, adicione `/home/MyUser/.local/bin` ao PATH e substitua *MyUser* pelo nome do seu usuário.
   + Em dispositivos Windows, adicione `PythonPath\\Scripts` ao PATH e substitua *PythonPath* pelo caminho para a pasta Python no seu dispositivo.

Agora é possível usar a CLI do GDK para criar, construir e publicar componentes do Greengrass. Para obter mais informações sobre como usar a CLI do GDK, consulte [Comandos da interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass](greengrass-development-kit-cli-commands.md).

# Comandos da interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass
<a name="greengrass-development-kit-cli-commands"></a>

A interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass (CLI do GDK) fornece uma interface de linha de comando que você pode usar para criar e publicar componentes do Greengrass em seu computador de desenvolvimento. Os comandos da CLI do GDK usam o formato a seguir.

```
gdk <command> <subcommand> [arguments]
```

Quando você [instala a CLI do GDK](install-greengrass-development-kit-cli.md), o instalador adiciona `gdk` ao PATH para que você possa executar a CLI do GDK na linha de comando.

É possível usar os argumentos a seguir com qualquer comando:
+ Use `-h` ou `--help` para ter informações sobre um comando da CLI do GDK.
+ Use `-v` ou `--version` para ver qual versão da CLI do GDK está instalada.
+ Use `-d` ou `--debug` para gerar logs detalhados que você pode usar para depurar a CLI do GDK.

Esta seção descreve os comandos da CLI do GDK e fornece exemplos para cada comando. A sinopse de cada comando mostra argumentos dela e o uso. Os argumentos opcionais são mostrados dentro de colchetes.

**Topics**
+ [componente](greengrass-development-kit-cli-component.md)
+ [config](greengrass-development-kit-cli-config.md)
+ [teste-e2e](greengrass-development-kit-cli-test.md)

# componente
<a name="greengrass-development-kit-cli-component"></a>

Use o comando `component` na interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass (GDK CLI) para criar e publicar componentes personalizados do Greengrass.

**Topics**
+ [init](#greengrass-development-kit-cli-component-init)
+ [build](#greengrass-development-kit-cli-component-build)
+ [publicar](#greengrass-development-kit-cli-component-publish)
+ [list](#greengrass-development-kit-cli-component-list)

## init
<a name="greengrass-development-kit-cli-component-init"></a>

Inicialize uma pasta de componentes do Greengrass a partir de um modelo de componente ou componente da comunidade.

<a name="gdk-cli-component-templates-community-components"></a>A CLI do GDK recupera componentes da comunidade do [Catálogo de Software do Greengrass](greengrass-software-catalog.md) e modelos de componentes do [repositório de modelos de componentes do AWS IoT Greengrass no GitHub](https://github.com/aws-greengrass/aws-greengrass-component-templates).

**nota**  
<a name="gdk-cli-component-init-empty-folder-requirement"></a>Se você usa a CLI do GDK v1.0.0, deve executar esse comando em uma pasta vazia. A CLI do GDK baixa o modelo ou componente da comunidade para a pasta atual.  
<a name="gdk-cli-component-init-empty-folder-requirement-gdk-cli-v1.1.0"></a>Se você usa a CLI do GDK v1.1.0 ou posterior, pode especificar o argumento `--name` para especificar a pasta em que a CLI do GDK baixa o modelo ou o componente da comunidade. Se você usar esse argumento, especifique uma pasta que não existe. A CLI do GDK cria a pasta para você. Se você não especificar esse argumento, a CLI do GDK usa a pasta atual, que deve estar vazia.  
Se o componente usa o [sistema de compilação zip](gdk-cli-configuration-file.md#gdk-cli-configuration-file-build-system), a CLI do GDK compacta determinados arquivos na pasta do componente em um arquivo zip com o mesmo nome da pasta do componente. Por exemplo, se o nome da pasta do componente for `HelloWorld`, a CLI do GDK cria um arquivo zip chamado `HelloWorld.zip`. Na fórmula do componente, o nome do artefato zip deve corresponder ao nome da pasta do componente. Se você usa a CLI do GDK versão 1.0.0 em um dispositivo Windows, a pasta do componente e os nomes dos arquivos zip devem conter somente letras minúsculas.  
Se você inicializar um modelo ou componente da comunidade que usa o sistema de compilação zip em uma pasta com um nome diferente do modelo ou componente, deverá alterar o nome do artefato zip na fórmula do componente. Atualize as definições `Artifacts` e `Lifecycle` de modo que o nome do arquivo zip corresponda ao nome da pasta do componente. O exemplo a seguir destaca o nome do arquivo zip nas definições `Artifacts` e `Lifecycle`.  

```
{
  ...
  "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}"
      }
    }
  ]
}
```

```
---
...
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}"
```

**Resumo**  

```
$ gdk component init
    [--language]
    [--template]
    [--repository]
    [--name]
```

**Argumentos (inicializar a partir do modelo do componente)**  
+ `-l`, `--language`: a linguagem de programação a ser usada para o modelo que você especificar.

  Especifique `--repository` ou `--language` e `--template`.
+ `-t`, `--template`: o modelo de componente a ser usado em um projeto de componente local. Para visualizar os modelos disponíveis, use o comando [list](#greengrass-development-kit-cli-component-list).

  Especifique `--repository` ou `--language` e `--template`.
+ `-n`, `--name`: (opcional) o nome da pasta local em que a CLI do GDK inicializa o componente. Especifique uma pasta que não existe. A CLI do GDK cria a pasta para você.

  Este atributo está disponível para a CLI do GDK v1.1.0 e posteriores.

**Argumentos (inicializar a partir do componente da comunidade)**  
+ `-r`, `--repository`: o componente da comunidade a ser verificado na pasta local. Para visualizar os componentes disponíveis da comunidade, use o comando [list](#greengrass-development-kit-cli-component-list).

  Especifique `--repository` ou `--language` e `--template`.
+ `-n`, `--name`: (opcional) o nome da pasta local em que a CLI do GDK inicializa o componente. Especifique uma pasta que não existe. A CLI do GDK cria a pasta para você.

  Este atributo está disponível para a CLI do GDK v1.1.0 e posteriores.

**Saída**  
O exemplo a seguir mostra a saída produzida quando você executa esse comando para inicializar uma pasta de componentes a partir do modelo Hello World do Python.  

```
$ gdk component init -l python -t HelloWorld
[2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'.
[2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.
```
O exemplo a seguir mostra a saída produzida quando você executa este comando para inicializar uma pasta de componente de um componente da comunidade.  

```
$ gdk component init -r aws-greengrass-labs-database-influxdb
[2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'.
[2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.
```

## build
<a name="greengrass-development-kit-cli-component-build"></a>

Crie a fonte de um componente em uma fórmula e artefatos que você possa publicar no serviço do AWS IoT Greengrass. A CLI do GDK executa o sistema de compilação que você especifica no arquivo de configuração da [CLI do GDK](gdk-cli-configuration-file.md), `gdk-config.json`. Você deve executar esse comando na mesma pasta em que o arquivo `gdk-config.json` existe.

Quando você executa esse comando, a CLI do GDK cria uma fórmula e artefatos na pasta `greengrass-build` do componente. A CLI do GDK salva a fórmula na pasta `greengrass-build/recipes` e salva os artefatos na pasta `greengrass-build/artifacts/componentName/componentVersion`.

Se você usa a CLI do GDK v1.1.0 ou posterior, a fórmula do componente pode especificar artefatos que existem em um bucket do S3, mas não na pasta de criação do componente local. Você pode usar esse atributo para reduzir o uso de largura de banda ao desenvolver componentes com grandes artefatos, como modelos de machine learning.

Depois de criar um componente, você pode fazer o seguinte para testá-lo em um dispositivo principal do Greengrass:
+ Se você desenvolve em um dispositivo diferente daquele em que executa o software AWS IoT Greengrass Core, você deve publicar o componente para implantá-lo em um dispositivo principal do Greengrass. Publique o componente no serviço do AWS IoT Greengrass e implante-o no dispositivo principal do Greengrass. Para obter mais informações, veja o comando [publish](#greengrass-development-kit-cli-component-build) e [Criar implantações](create-deployments.md).
+ Se você desenvolve no mesmo dispositivo em que executa o software AWS IoT Greengrass Core, pode publicar o componente no serviço do AWS IoT Greengrass para implantação ou criar uma implantação local para instalar e executar o componente. Para criar uma implantação local, use a CLI do Greengrass. Para obter mais informações, consulte [Interface de linha de comando do Greengrass](gg-cli.md) e [Testar os componentes do AWS IoT Greengrass com implantações locais](test-components.md). Ao criar a implantação local, especifique `greengrass-build/recipes` como pasta de fórmulas e `greengrass-build/artifacts` como pasta de artefatos.

**Resumo**  

```
$ gdk component build
```

**Argumentos**  
Nenhum

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando.  

```
$ gdk component build
[2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json
[2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the  project directory.
[2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration.
[2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component.
[2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'.
[2021-11-29 13:18:49] INFO - Zipping source code files of the component.
[2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder.
[2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe.
[2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.
```

## publicar
<a name="greengrass-development-kit-cli-component-publish"></a>

Publique esse componente no serviço do AWS IoT Greengrass. Esse comando carrega artefatos de construção em um bucket do S3, atualiza o URI do artefato na fórmula e cria uma nova versão do componente a partir dela. A CLI do GDK usa o bucket do S3 e a região da AWS que você especifica no [arquivo de configuração da CLI do GDK](gdk-cli-configuration-file.md), `gdk-config.json`. Você deve executar esse comando na mesma pasta em que o arquivo `gdk-config.json` existe.

<a name="gdk-cli-s3-bucket-name-formation"></a>Se você usar a CLI do GDK v1.1.0 ou posterior, poderá especificar o argumento `--bucket` para especificar o bucket do S3 em que a CLI do GDK carrega os artefatos do componente. <a name="gdk-cli-s3-bucket-name-formation-format"></a>Se você não especificar esse argumento, a CLI do GDK será carregada no bucket do S3 cujo nome é `bucket-region-accountId`, em que *bucket* e *região* são os valores que você especifica em `gdk-config.json`, e *accountId* é seu ID da Conta da AWS. A CLI do GDK criará o bucket, se ele não existir.

Se você usa a CLI do GDK v1.2.0 ou posterior, você pode substituir a Região da AWS especificada no arquivo de configuração da CLI do GDK usando o parâmetro `--region`. É possível especificar opções adicionais usando o parâmetro `--options`. Para uma lista de opções disponíveis, consulte [Arquivo de configuração da CLI do kit de desenvolvimento do Greengrass](gdk-cli-configuration-file.md).

Quando você executa esse comando, a CLI do GDK publica o componente com a versão especificada na fórmula. Se você especificar `NEXT_PATCH`, a CLI do GDK usará a próxima versão do patch que ainda não existe. As versões semânticas usam um sistema de numeração *principal*.*secundário*.*patch*. Para mais informações, consulte a [especificação de versão semântica](https://semver.org/).

**nota**  
Se você usa a CLI do GDK v1.1.0 ou posterior, ao executar esse comando, ela verifica se o componente foi criado. Se o componente não for criado, a CLI do GDK [cria o componente](#greengrass-development-kit-cli-component-build) antes de publicá-lo.

**Resumo**  

```
$ gdk component publish
    [--bucket] [--region] [--options]
```

**Argumentos**  
+ `-b`, `--bucket`: (opcional) especifique o nome do bucket do S3 em que a CLI do GDK publica artefatos do componente.

   <a name="gdk-cli-s3-bucket-name-formation-format"></a>Se você não especificar esse argumento, a CLI do GDK será carregada no bucket do S3 cujo nome é `bucket-region-accountId`, em que *bucket* e *região* são os valores que você especifica em `gdk-config.json`, e *accountId* é seu ID da Conta da AWS. A CLI do GDK criará o bucket, se ele não existir. 

  A CLI do GDK criará o bucket, se ele não existir.

  Este atributo está disponível para a CLI do GDK v1.1.0 e posteriores.
+ `-r`, `--region`: (opcional) especifique o nome da Região da AWS para quando o componente for criado. Esse argumento substitui o nome da região na configuração da CLI do GDK.

  Este atributo está disponível para a CLI do GDK v1.2.0 e posteriores.
+ `-o`, `--options`: (opcional) especifique uma lista de opções para publicar um componente. O argumento deve ser uma string JSON válida ou um caminho de arquivo para um arquivo JSON contendo as opções de publicação. Este argumento substitui as opções na configuração da CLI do GDK. 

  Este atributo está disponível para a CLI do GDK v1.2.0 e posteriores.

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando.  

```
$ gdk component publish
[2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json
[2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the  project directory.
[2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials
[2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration.
[2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create.
[2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket.
[2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html.
[2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists.
[2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0.
[2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0
[2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.
```

## list
<a name="greengrass-development-kit-cli-component-list"></a>

Recupere a lista de modelos de componentes e componentes da comunidade disponíveis.

<a name="gdk-cli-component-templates-community-components"></a>A CLI do GDK recupera componentes da comunidade do [Catálogo de Software do Greengrass](greengrass-software-catalog.md) e modelos de componentes do [repositório de modelos de componentes do AWS IoT Greengrass no GitHub](https://github.com/aws-greengrass/aws-greengrass-component-templates).

Você pode passar a saída desse comando para o comando [init](#greengrass-development-kit-cli-component-init) para inicializar repositórios de componentes a partir de modelos e componentes da comunidade.

**Resumo**  

```
$ gdk component list
    [--template]
    [--repository]
```

**Argumentos**  
+ `-t`, `--template`: (opcional) especifique esse argumento para listar os modelos de componentes disponíveis. Esse comando gera o nome e a linguagem de cada modelo no formato `name-language`. Por exemplo, em `HelloWorld-python`, o nome do modelo é `HelloWorld` e a linguagem é `python`.
+ `-r`, `--repository`: (opcional) especifique esse argumento para listar os repositórios de componentes da comunidade disponíveis.

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando.  

```
$ gdk component list --template
[2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog.
[2021-11-29 12:29:04] INFO - Found '2' component templates to display.
1. HelloWorld-python
2. HelloWorld-java
```

# config
<a name="greengrass-development-kit-cli-config"></a>

Use o comando `config` na interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass (CLI do GDK) para modificar a configuração do GDK no arquivo de configuração, `gdk-config.json`.

**Topics**
+ [atualizar](#greengrass-development-kit-cli-config-update)

## atualizar
<a name="greengrass-development-kit-cli-config-update"></a>

Inicie um prompt interativo para modificar campos em um arquivo de configuração existente do GDK.

**Resumo**  

```
$ gdk config update
    [--component]
```

**Argumentos**  
+ `-c`, `--component`: para atualizar os campos relacionados ao componente no arquivo `gdk-config.json`. Esse argumento é obrigatório, pois é a única opção.

**Saída**  
O exemplo a seguir mostra a saída produzida quando você executa esse comando para configurar um componente.  

```
$ gdk config update --component
Current value of the REQUIRED component_name is (default: com.example.PythonHelloWorld): 
Current value of the REQUIRED author is (default: author): 
Current value of the REQUIRED version is (default: NEXT_PATCH): 
Do you want to change the build configurations? (y/n) 
Do you want to change the publish configurations? (y/n)
[2023-09-26 10:19:48] INFO - Config file has been updated. Exiting...
```

# teste-e2e
<a name="greengrass-development-kit-cli-test"></a>

Use o comando `test-e2e` na interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass (CLI do CLI) para inicializar, criar e executar módulos de teste de ponta a ponta no projeto do GDK.

**Topics**
+ [init](#greengrass-development-kit-cli-test-init)
+ [build](#greengrass-development-kit-cli-test-build)
+ [executar](#greengrass-development-kit-cli-test-run)

## init
<a name="greengrass-development-kit-cli-test-init"></a>

Inicialize um projeto existente da CLI do GDK com um módulo de teste que usa a Estrutura de testes do Greengrass (GTF).

Por padrão, a CLI do GDK recupera o modelo do módulo maven do [repositório de modelos de componentes do AWS IoT Greengrass no GitHub](https://github.com/aws-greengrass/aws-greengrass-component-templates). Esse módulo maven vem com uma dependência do arquivo JAR `aws-greengrass-testing-standalone`.

Esse comando cria um novo diretório chamado `gg-e2e-tests` dentro do projeto do GDK. Se o diretório do módulo de teste já existir e não estiver vazio, o comando será encerrado sem fazer nada. Essa pasta `gg-e2e-tests` contém o atributo Cucumber e as definições de etapas estruturadas em um projeto maven.

Por padrão, esse comando tentará usar a versão mais recente do GTF.

**Resumo**  

```
$ gdk test-e2e init
    [--gtf-version]
```

**Argumentos**  
+ `-ov`, `--gtf-version`: (opcional) a versão do GTF a ser usada com o módulo de teste de ponta a ponta no projeto do GDK. Esse valor deve ser uma das versões do GTF dos [lançamentos](https://github.com/aws-greengrass/aws-greengrass-testing/releases). Este argumento substitui `gtf_version` na configuração da CLI do GDK.

**Saída**  
O exemplo a seguir mostra a saída produzida quando você executa esse comando para inicializar o projeto do GDK com o módulo de teste.  

```
$ gdk test-e2e init
[2023-12-06 12:20:28] INFO - Using the GTF version provided in the GDK test config 1.2.0
[2023-12-06 12:20:28] INFO - Downloading the E2E testing template from GitHub into gg-e2e-tests directory...
```

## build
<a name="greengrass-development-kit-cli-test-build"></a>

**nota**  
Você deve criar o componente executando **gdk component build** antes de criar o módulo de teste de ponta a ponta.

Crie o módulo de testes completo. A CLI do GDK cria o módulo de teste usando o sistema de compilação que você especifica no [arquivo de configuração da CLI do GDK](gdk-cli-configuration-file.md), `gdk-config.json`, na propriedade `test-e2e`. Você deve executar esse comando na mesma pasta em que o arquivo `gdk-config.json` existe.

Por padrão, a CLI do GDK usa o sistema de compilação maven para criar o módulo de teste. O [Maven](https://maven.apache.org/) é necessário para executar o comando `gdk test-e2e build`.

Você deve criar o componente executando **gdk-component-build** antes de criar o módulo de teste, caso os arquivos de atributos de teste tiverem variáveis como `GDK_COMPONENT_NAME` e `GDK_COMPONENT_RECIPE_FILE` para interpolar.

Quando você executa esse comando, a CLI do GDK interpola todas as variáveis da configuração do projeto do GDK e cria o módulo `gg-e2e-tests` para gerar o arquivo JAR de teste final.

**Resumo**  

```
$ gdk test-e2e build
```

**Argumentos**  
Nenhum

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando.  

```
$ gdk test-e2e build
[2023-07-20 15:36:48] INFO - Updating feature file: file:///path/to//HelloWorld/greengrass-build/gg-e2e-tests/src/main/resources/greengrass/features/component.feature
[2023-07-20 15:36:48] INFO - Creating the E2E testing recipe file:///path/to/HelloWorld/greengrass-build/recipes/e2e_test_recipe.yaml
[2023-07-20 15:36:48] INFO - Building the E2E testing module
[2023-07-20 15:36:48] INFO - Running the build command 'mvn package'
.........
```

## executar
<a name="greengrass-development-kit-cli-test-run"></a>

Execute o módulo de teste com as opções de teste no arquivo de configuração do GDK.

**nota**  
Você deve criar o módulo de teste executando **gdk test-e2e build** antes de executar os testes de ponta a ponta

**Resumo**  

```
$ gdk test-e2e run
    [--gtf-options]
```

**Argumentos**  
+ `-oo`, `--gtf-options`: (opcional) especifique uma lista de opções para executar os testes de ponta a ponta. O argumento deve ser uma string JSON válida ou um caminho de arquivo para um arquivo JSON contendo as opções do GTF. As opções fornecidas no arquivo de configuração são mescladas com as fornecidas nos argumentos do comando. Se uma opção estiver presente em ambos os lugares, a do argumento terá precedência sobre a do arquivo de configuração.

  Se a opção `tags` não for especificada nesse comando, o GDK usará `Sample` para tags. Se `ggc-archive` não for especificado, o GDK baixa a versão mais recente do arquivo do núcleo do Greengrass.

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando.  

```
$ gdk test-e2e run
[2023-07-20 16:35:53] INFO - Downloading latest nucleus archive from url https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-latest.zip
[2023-07-20 16:35:57] INFO - Running test jar with command java -jar /path/to/greengrass-build/gg-e2e-tests/target/uat-features-1.0.0.jar —ggc-archive=/path/to/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip —tags=Sample

16:35:59.693 [] [] [] [INFO] com.aws.greengrass.testing.modules.GreengrassContextModule - Extracting /path/to/workplace/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip into /var/folders/7g/ltzcb_3s77nbtmkzfb6brwv40000gr/T/gg-testing-7718418114158172636/greengrass
16:36:00.534 [gtf-1.1.0-SNAPSHOT] [] [] [INFO] com.aws.greengrass.testing.features.LoggerSteps - GTF Version is gtf-1.1.0-SNAPSHOT
.......
```

# Arquivo de configuração da CLI do kit de desenvolvimento do Greengrass
<a name="gdk-cli-configuration-file"></a>

A interface de linha de comando do kit de desenvolvimento do AWS IoT Greengrass(CLI do GDK) lê um arquivo de configuração chamado `gdk-config.json` para criar e publicar componentes. Esse arquivo de configuração precisa estar na raiz do repositório de componentes. Você pode usar o [comando init](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-init) da CLI do GDK para inicializar repositórios de componentes com esse arquivo de configuração.

**Topics**
+ [Formato do arquivo de configuração da CLI do GDK](#gdk-config-format)
+ [Exemplos de arquivos de configuração da CLI do GDK](#gdk-config-examples)

## Formato do arquivo de configuração da CLI do GDK
<a name="gdk-config-format"></a>

Ao definir um arquivo de configuração da CLI do GDK para um componente, você especifica as seguintes informações no formato JSON.

`gdk_version`  
A versão mínima da CLI do GDK compatível com esse componente. Esse valor deve ser uma das versões da CLI do GDK dos [lançamentos](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases).

`component`  
A configuração desse componente.    
`componentName`    
`author`  
O autor ou publicador do componente.  
`version`  
A versão do componente. Especifique um dos seguintes:  <a name="gdk-cli-configuration-file-component-version-options"></a>
+ `NEXT_PATCH`: quando você escolhe essa opção, a CLI do GDK define a versão quando você publica o componente. A CLI do GDK consulta o serviço do AWS IoT Greengrass para identificar a versão mais recente publicada do componente. Em seguida, ela define a versão para a próxima versão de patch após essa versão. Se você não publicou o componente antes, a CLI do GDK usa a versão `1.0.0`.

  Se você escolher essa opção, não poderá usar a [CLI do Greengrass](greengrass-cli-component.md) para implantar e testar localmente o componente em seu computador de desenvolvimento local que executa o software AWS IoT Greengrass Core. Para habilitar implantações locais, você deve especificar uma versão semântica em vez disso.
+ Uma versão semântica, como **1.0.0**. As versões semânticas usam um sistema de numeração *principal*.*secundário*.*patch*. Para mais informações, consulte a [especificação de versão semântica](https://semver.org/).

  Se você desenvolver componentes em um dispositivo principal do Greengrass para implantar e testar o componente, escolha essa opção. Você deve criar o componente com uma versão específica para criar implantações locais com a [CLI do Greengrass](greengrass-cli-component.md).  
`build`  
A configuração a ser usada para criar a fonte desse componente em artefatos. Esse objeto contém as informações a seguir:    
  `build_system`   
O sistema de compilação a ser usado. Escolha uma das seguintes opções:  <a name="gdk-cli-configuration-file-component-build-system-options"></a>
+ `zip`: empacota a pasta do componente em um arquivo ZIP para definir como o único artefato do componente. Escolha essa opção para os seguintes tipos de componentes:
  + Componentes que usam linguagens de programação interpretadas, como Python ou JavaScript.
  + Componentes que empacotam arquivos que não sejam código, como modelos de machine learning ou outros recursos.

  A CLI do GDK compacta a pasta do componente em um arquivo zip com o mesmo nome da pasta do componente. Por exemplo, se o nome da pasta do componente for `HelloWorld`, a CLI do GDK cria um arquivo zip chamado `HelloWorld.zip`.
**nota**  
Se você usa a CLI do GDK versão 1.0.0 em um dispositivo Windows, a pasta do componente e os nomes dos arquivos zip devem conter somente letras minúsculas.

  Quando a CLI do GDK compacta a pasta do componente em um arquivo zip, ela ignora os seguintes arquivos:
  + O arquivo `gdk-config.json`
  + O arquivo da fórmula (`recipe.json` ou `recipe.yaml`)
  + Crie pastas, como `greengrass-build`
+ `maven`: executa o comando `mvn clean package` para transformar a fonte do componente em artefatos. Escolha essa opção para componentes que usam o [Maven](https://maven.apache.org/), como componentes Java.

  Em dispositivos Windows, esse recurso está disponível para a CLI do GDK v1.1.0 e versões posteriores.
+ `gradle`: executa o comando `gradle build` para transformar a fonte do componente em artefatos. Escolha essa opção para componentes que usam o [Gradle.](https://gradle.org/) Este atributo está disponível para a CLI do GDK v1.1.0 e posteriores.

  O sistema de compilação do `gradle` é compatível com o Kotlin DSL como arquivo de compilação. Este atributo está disponível para a CLI do GDK v1.2.0 e posteriores.
+ `gradlew`: executa o comando `gradlew` para transformar a fonte do componente em artefatos. Escolha essa opção para componentes que usam o [Wrapper Gradle](https://docs.gradle.org/current/userguide/gradle_wrapper.html).

  Este atributo está disponível para a CLI do GDK v1.2.0 e posteriores.
+ `custom`: executa um comando personalizado para transformar a fonte do componente em uma fórmula e artefatos. Especifique o comando personalizado no parâmetro `custom_build_command`.  
`custom_build_command`  
(Opcional) O comando de compilação personalizado a ser executado em um sistema de compilação personalizado. Você deve especificar este parâmetro se especificar `custom` para `build_system`.  
Esse comando deve criar uma fórmula e artefatos nas seguintes pastas dentro da pasta do componente. A CLI do GDK cria essas pastas para você quando você executa o [comando de compilação do componente](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-build).  
+ Pasta de fórmula: `greengrass-build/recipes`
+ Pasta de artefatos: `greengrass-build/artifacts/componentName/componentVersion`

  Substitua *componentName* pelo nome do componente e substitua *componentVersion* pela versão do componente ou `NEXT_PATCH`.
Você pode especificar uma única string ou uma lista de strings, em que cada string é uma palavra no comando. Por exemplo, para executar um comando de compilação personalizado para um componente C\$1\$1, especifique **cmake --build build --config Release** ou **["cmake", "--build", "build", "--config", "Release"]**.  
Para ver um exemplo de um sistema de compilação personalizado, consulte [aws.greengrass.labs.LocalWebServer community component no GitHub](https://github.com/awslabs/aws-greengrass-labs-local-web-server).  
`options`  
(Opcional) Opções de configuração adicionais usadas durante o processo de compilação do componente.  
Este atributo está disponível para a CLI do GDK v1.2.0 e posteriores.    
`excludes`  
Uma lista de padrões globais que definem quais arquivos excluir do diretório de componentes ao criar o arquivo zip. Válido somente quando a `build_system` é `zip`.  
Nas versões 1.4.0 e anteriores da CLI do GDK, qualquer arquivo que corresponda a uma entrada na lista de exclusões é excluído de todos os subdiretórios do componente. Para ter o mesmo comportamento nas versões 1.5.0 e posteriores da CLI do GDK, acrescente as entradas `**/` existentes na lista de exclusões. Por exemplo, `*.txt` excluirá arquivos de texto apenas do diretório e `**/*.txt` excluirá arquivos de texto de todos os diretórios e subdiretórios.  
Nas versões 1.5.0 e posteriores da CLI do GDK, você pode ver um aviso durante a compilação do componente quando `excludes` é definido no arquivo de configuração do GDK. Para desativar esse aviso, defina a variável de ambiente `GDK_EXCLUDES_WARN_IGNORE` como`true`.
A CLI do GDK sempre exclui os seguintes arquivos do arquivo zip:  
+ O arquivo `gdk-config.json`
+ O arquivo da fórmula (`recipe.json` ou `recipe.yaml`)
+ Crie pastas, como `greengrass-build`
Os arquivos a seguir são excluídos por padrão. No entanto, você pode controlar quais desses arquivos são excluídos com a opção `excludes`.  
+ Qualquer pasta que comece com o prefixo “test” (`test*`)
+ Todos os arquivos ocultos
+ A pasta `node_modules`.
Se você especificar a opção `excludes`, a CLI do GDK excluirá somente os arquivos definidos com a opção `excludes`. Se você não especificar a opção `excludes`, a CLI do GDK excluirá os arquivos e pastas padrão mencionados anteriormente.  
`zip_name`  
O nome do arquivo zip a ser usado ao criar um artefato zip durante o processo de compilação. Válido somente quando a `build_system` é `zip`. Se `build_system` estiver vazio, o nome do componente será usado para o nome do arquivo zip.  
`publish`  
A configuração a ser usada para publicar esse componente no serviço do AWS IoT Greengrass.  
<a name="gdk-cli-s3-bucket-name-formation"></a>Se você usar o GDK CLI v1.1.0 ou posterior, poderá especificar o argumento `--bucket` para especificar o bucket do S3 em que o GDK CLI carrega os artefatos do componente. <a name="gdk-cli-s3-bucket-name-formation-format"></a>Se você não especificar esse argumento, a CLI do GDK será carregada no bucket do S3 cujo nome é `bucket-region-accountId`, em que *bucket* e *região* são os valores que você especifica em `gdk-config.json`, e *accountId* é seu ID da Conta da AWS. A CLI do GDK criará o bucket, se ele não existir.  
Esse objeto contém as informações a seguir:    
`bucket`  
O nome do bucket do S3 a ser usado para hospedar artefatos de componentes.  
`region`  
A Região da AWS em que a CLI do GDK publica este componente.  
Essa propriedade é opcional se você estiver usando a CLI do GDK v1.3.0 ou posterior.  
`options`  
(Opcional) Opções de configuração adicionais usadas durante o processo de compilação do componente.  
Este atributo está disponível para a CLI do GDK v1.2.0 e posteriores.    
`file_upload_args`  
Uma estrutura JSON contendo argumentos enviados ao Amazon S3 durante o upload de arquivos para um bucket, como metadados e mecanismos de criptografia. Para ter uma lista dos argumentos permitidos, consulte a classe [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS) na *documentação do Boto3*.

`test-e2e`  
(Opcional) A configuração a ser usada durante o teste ponta a ponta do componente. Este atributo está disponível para a CLI do GDK v1.3.0 e posteriores.    
`build`  
`build_system`: o sistema de compilação a ser usado. A opção padrão é `maven`. Escolha uma das seguintes opções:  
+ `maven`: executa o comando `mvn package` para criar o módulo de teste. Escolha essa opção para criar o módulo de teste que usa o [Maven](https://maven.apache.org/).
+ `gradle`: executa o comando `gradle build` para criar o módulo de teste. Escolha essa opção para o módulo de teste que usa o [Gradle](https://gradle.org/).   
`gtf_version`  
(Opcional) A versão da estrutura de testes do Greengrass (GTF) a ser usada como dependência do módulo de teste de ponta a ponta ao inicializar o projeto do GDK com GTF. Esse valor deve ser uma das versões do GTF dos [lançamentos](https://github.com/aws-greengrass/aws-greengrass-testing/releases). O padrão é GTF versão 1.1.0.  
`gtf_options`  
(Opcional) Opções de configuração adicionais usadas durante o teste de ponta a ponta do componente.  
<a name="gtf_options"></a>A lista a seguir inclui as opções que você pode usar com o GTF para a versão 1.1.0.  
+ `additional-plugins`: (opcional) plug-ins adicionais do Cucumber
+ `aws-region`: tem como alvo endpoints regionais específicos para serviços da AWS. O padrão é o que o SDK da AWS descobre.
+ `credentials-path`: caminho opcional de credenciais do perfil da AWS. O padrão é credenciais descobertas no ambiente do host.
+ `credentials-path-rotation`: duração de rotação opcional para credenciais da AWS. O valor padrão é 15 minutos ou `PT15M`.
+ `csr-path`: o caminho para o CSR usando qual certificado do dispositivo será gerado.
+ `device-mode`: o dispositivo alvo em teste. O padrão é o dispositivo local.
+ `env-stage`: tem como alvo o ambiente de implantação do Greengrass. O padrão é produção.
+ `existing-device-cert-arn`: o arn de um certificado existente que você deseja usar como certificado de dispositivo para o Greengrass.
+ `feature-path`: arquivo ou diretório contendo arquivos de atributos adicionais. O padrão é não usar nenhum arquivo de atributo adicional.
+ `gg-cli-version`: substitui a versão da CLI do Greengrass. O padrão é o valor encontrado em `ggc.version`.
+ `gg-component-bucket`: o nome de um bucket existente do Amazon S3 que abriga os componentes do Greengrass.
+ `gg-component-overrides`: uma lista de substituições de componentes do Greengrass.
+ `gg-persist`: uma lista de elementos de teste a serem persistidos após a execução do teste. O comportamento padrão é não persistir em nada. Os valores aceitos são `aws.resources`, `installed.software` e `generated.files`.
+ `gg-runtime`: uma lista de valores para influenciar a forma como o teste interage com os recursos do teste. Esses valores substituem o parâmetro `gg.persist`. Se o padrão for vazio, ele presume que todos os recursos de teste são gerenciados pelo caso de teste, incluindo o runtime do Greengrass instalado. Os valores aceitos são `aws.resources`, `installed.software` e `generated.files`.
+ `ggc-archive`: o caminho para o componente do núcleo arquivado do Greengrass.
+ `ggc-install-root`: diretório para instalar o componente do núcleo do Greengrass. O padrão é test.temp.path e pasta de execução de teste.
+ `ggc-log-level`: defina o nível de log do núcleo do Greengrass para a execução do teste. O padrão é "INFO".
+ `ggc-tes-rolename`: o perfil do IAM que o AWS IoT Greengrass Core assumirá para acessar os serviços da AWS. Se um perfil com o nome fornecido não existir, será criada uma política de acesso padrão.
+ `ggc-trusted-plugins`: a lista separada por vírgula dos caminhos (no host) dos plug-ins confiáveis que precisam ser adicionados ao Greengrass. Para fornecer o caminho no próprio DUT, adicione o prefixo o caminho com 'dut':
+ `ggc-user-name`: o valor de user:group PosixUser para o núcleo do Greengrass. O padrão é o nome de usuário atual que está conectado.
+ `ggc-version`: substitui a versão do componente do núcleo do Greengrass em execução. O padrão é o valor encontrado em ggc.archive.
+ `log-level`: nível de log da execução do teste. O padrão é "INFO".
+ `parallel-config`: conjunto de índice de lote e número de lotes como uma string JSON. O valor padrão do índice do lote é 0 e o número de lotes é 1.
+ `proxy-url`: configure todos os testes para rotear o tráfego por meio desse URL.
+ `tags`: executa apenas tags de recursos. Pode ser cruzado com '&'
+ `test-id-prefix`: um prefixo comum aplicado a todos os recursos específicos do teste, incluindo nomes e tags de recursos da AWS. O padrão é um prefixo "gg".
+ `test-log-path`: diretório que conterá os resultados de toda a execução do teste. O padrão é "testResults".
+ `test-results-json`: sinalize para determinar se um relatório JSON do Cucumber resultante foi gerado e gravado no disco. O valor padrão é verdadeiro.
+ `test-results-log`: sinalize para determinar se a saída do console foi gerada e gravada no disco. O padrão é falso.
+ `test-results-xml`: sinalize para determinar se um relatório XML JUnit resultante é gerado e gravado em disco. O valor padrão é verdadeiro.
+ `test-temp-path`: diretório para gerar artefatos de teste locais. O padrão é um diretório temporário aleatório prefixado com gg-testing.
+ `timeout-multiplier`: multiplicador fornecido para todos os tempos limite de teste. O padrão é 1.0.

## Exemplos de arquivos de configuração da CLI do GDK
<a name="gdk-config-examples"></a>

Você pode consultar os seguintes exemplos de arquivos de configuração da CLI do GDK para configurar ambientes de componentes do Greengrass.

### Hello World (Python)
<a name="gdk-config-example-hello-world-python"></a>

O arquivo de configuração da CLI do GDK a seguir é compatível com um componente Hello World que executa um script Python. Esse arquivo de configuração usa o sistema de compilação `zip` para empacotar o script Python do componente em um arquivo ZIP que a CLI do GDK carrega como um artefato.

```
{
  "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"
  }
}
```

### Hello World (Java)
<a name="gdk-config-example-hello-world-java"></a>

O arquivo de configuração da CLI do GDK a seguir é compatível com um componente Hello World que executa uma aplicação Java. Este arquivo de configuração usa o sistema de compilação `maven` para empacotar o código-fonte Java do componente em um arquivo JAR que a CLI do GDK carrega como um artefato.

```
{
  "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"
  }
}
```

### Componentes da comunidade
<a name="gdk-config-community-component-examples"></a>

Vários componentes da comunidade no [Catálogo do Software do Greengrass](greengrass-software-catalog.md) usam a CLI do GDK. Você pode explorar os arquivos de configuração da CLI do GDK nos repositórios desses componentes.

**Para visualizar os arquivos de configuração da CLI do GDK dos componentes da comunidade**

1. Execute o seguinte comando para listar os componentes da comunidade que usam a CLI do GDK.

   ```
   gdk component list --repository
   ```

   A resposta lista o nome do repositório do GitHub para cada componente da comunidade que usa a CLI do GDK. Cada repositório existe na organização `awslabs`.

   ```
   [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
   ```

1. Abra o repositório GitHub de um componente da comunidade na seguinte URL. Substitua *community-component-name* pelo nome de um componente da comunidade da etapa anterior.

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