

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

# implantação
<a name="gg-cli-deployment"></a>

Use o comando `deployment` para interagir com componentes locais em seu dispositivo principal. 

Use o subcomando `status` para monitorar o progresso de uma implantação local. Você não pode monitorar o progresso de uma implantação local usando o console.

**Subcomandos**
+ [criar](#deployment-create)
+ [cancelar](#deployment-cancel)
+ [listar](#deployment-list)
+ [status](#deployment-status)

## criar
<a name="deployment-create"></a>

Crie ou atualize uma implantação local usando fórmulas de componentes, artefatos e argumentos de runtime especificados.

**Resumo**  

```
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 (Argumentos)**  
+ `--recipeDir`, `-r`. O caminho completo para a pasta que contém os arquivos de fórmulas do componente.
+ `--artifactDir`, `-a`. O caminho completo para a pasta que contém os arquivos de artefatos que você deseja incluir na sua implantação. A pasta de artefatos deve conter a seguinte estrutura de diretórios:

  ```
  {{/path/to/artifact/folder}}/{{<component-name>}}/{{<component-version>}}/{{<artifacts>}}
  ```
+ `--update-config`, `-c`. Os argumentos de configuração para a implantação, fornecidos como uma string JSON ou um arquivo JSON. A string JSON deve estar no seguinte formato: 

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

  `MERGE` e `RESET` diferenciam maiúsculas de minúsculas.
+ `--groupId`, `-g`. O grupo de objetos de destino para a implantação.
+ `--merge`, `-m`. O nome e a versão do componente de destino que você deseja adicionar ou atualizar. Você deve fornecer as informações do componente no formato `{{<component>}}={{<version>}}`. Use um argumento separado para cada componente adicional para especificar. Se necessário, use o argumento `--runWith` para fornecer as informações `posixUser`, `posixGroup` e `windowsUser` para executar o componente.
+ `--runWith`. As informações `posixUser`, `posixGroup` e `windowsUser` para executar um componente genérico ou do Lambda. Você deve fornecer essas informações no formato `{{<component>}}:{posixUser|windowsUser}={{<user>}}[:{{<=posixGroup>}}]`. Por exemplo, você deve especificar **HelloWorld:posixUser=ggc\_user:ggc\_group** ou **HelloWorld:windowsUser=ggc\_user**. Use um argumento separado para cada opção adicional para especificar.

  Para obter mais informações, consulte [Configurar o usuário que executa os componentes](configure-greengrass-core-v2.md#configure-component-user).
+ `--systemLimits`. Os limites de recursos do sistema a serem aplicados aos processos de componentes do Lambda genéricos e não conteinerizados no dispositivo principal. Você pode configurar a quantidade máxima de uso da CPU e RAM que os processos de um componente podem usar. Especifique um objeto JSON serializado ou um caminho de arquivo para um arquivo JSON. O objeto JSON deve ter o seguinte formato.

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

  Você pode configurar os seguintes limites de recursos do sistema para cada componente:
  + `cpus`: <a name="system-resource-limits-cpu-definition-this"></a>a quantidade máxima de tempo de CPU que os processos deste componente podem usar no dispositivo principal. O tempo total da CPU de um dispositivo essencial é equivalente ao número de núcleos da CPU do dispositivo. Por exemplo, em um dispositivo principal com quatro núcleos da CPU, é possível definir esse valor como `2` a fim de limitar os processos do componente para 50% de uso em cada núcleo da CPU. Em um dispositivo com um núcleo da CPU, você pode definir esse valor como `0.25` a fim de limitar os processos do componente para 25% de uso da CPU. Se você definir esse valor como um número maior que o número de núcleos de CPU, o software AWS IoT Greengrass Core não limitará o uso da CPU do componente. 
  + `memory`: <a name="system-resource-limits-memory-definition-this"></a>a quantidade máxima de RAM, expressa em kilobytes, que esse processo de componente pode usar no dispositivo principal. 

  Para obter mais informações, consulte [Configurar limites de recursos do sistema para componentes](configure-greengrass-core-v2.md#configure-component-system-resource-limits).

  Esse recurso está disponível para a versão 2.4.0 e posterior do componente Greengrass [nucleus e da CLI do Greengrass](greengrass-nucleus-component.md) em dispositivos principais do Linux. AWS IoT Greengrass atualmente não oferece suporte a esse recurso nos dispositivos principais do Windows. 
+ `--remove`. O nome do componente de destino que você deseja remover de uma implantação local. Se o componente definir uma etapa do [ciclo de vida de desinstalação](component-recipe-reference.md#uninstall-lifecycle-definition), o software AWS IoT Greengrass principal executará o script de desinstalação antes de remover o componente. Para remover um componente que foi mesclado de uma implantação na nuvem, você deve fornecer o ID do grupo de objetos de destino no seguinte formato:

------
#### [ 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`. Define a ação tomada quando uma implantação falha. Há duas ações que você pode especificar:
  + `ROLLBACK` – 
  + `DO_NOTHING` – 

  Este atributo está disponível para a v2.11.0 e posterior do [Greengrass nucleus](greengrass-nucleus-component.md).

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

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

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

Cancela a implantação especificada.

Resumo  

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

Argumentos  
`-i`. O identificador exclusivo da implantação a ser cancelada. O ID de implantação é retornado na saída do comando `create`.

Output  
+ Nenhum

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

Recuperar o status das últimas 10 implantações locais.

**Resumo**  

```
greengrass-cli deployment list
```

**Arguments (Argumentos)**  
Nenhum

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando. Dependendo do status da sua implantação, a saída mostra um dos seguintes valores de status: `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>

Recupere o status de uma implantação específica.

**Resumo**  

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

**Arguments (Argumentos)**  
`-i`. O ID da implantação.

**Saída**  
O exemplo a seguir mostra a saída produzida ao executar esse comando. Dependendo do status da sua implantação, a saída mostra um dos seguintes valores de status: `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}}
```