

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Implante AWS IoT Greengrass grupos em um AWS IoT Greengrass núcleo
<a name="deployments"></a>

Use AWS IoT Greengrass grupos para organizar entidades em seu ambiente de borda. Você também pode usar os grupos para controlar como as entidades no grupo interagem entre si e com a Nuvem AWS. Por exemplo, somente as funções do Lambda no grupo são implantadas para execução local e somente os dispositivos no grupo podem se comunicar usando o servidor MQTT local.

Um grupo deve incluir um [núcleo](gg-core.md), que é um AWS IoT dispositivo que executa o software AWS IoT Greengrass Core. O núcleo atua como um gateway de borda e fornece AWS IoT Core recursos no ambiente de borda. Dependendo da sua necessidade de negócios, também é possível adicionar as seguintes entidades a um grupo:
+ **Dispositivos cliente**. Representados como coisas no registro do AWS IoT . Esses dispositivos devem executar o [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-lib-gg-connectivity.html) ou usar o [SDK AWS IoT de dispositivo](what-is-gg.md#iot-device-sdk) ou a [API de descoberta do AWS IoT Greengrass](gg-discover-api.md) para obter informações de conexão para o núcleo. Somente dispositivos cliente membros do grupo podem se conectar ao núcleo.
+ **Funções do Lambda**. Aplicativos com tecnologia sem servidor predefinidos pelo usuário que executam código no núcleo. As funções Lambda são criadas AWS Lambda e referenciadas a partir de um grupo do Greengrass. Para obter mais informações, consulte [Execute funções do Lambda no núcleo AWS IoT Greengrass](lambda-functions.md).
+ **Conectores**. Aplicativos com tecnologia sem servidor predefinidos que executam código no núcleo. Os conectores podem fornecer integração integrada com infraestrutura local AWS, protocolos de dispositivos e outros serviços em nuvem. Para obter mais informações, consulte [Integrar a serviços e protocolos usando conectores do Greengrass](connectors.md).
+ **Assinaturas**. Define os editores, os assinantes e os tópicos MQTT (ou assuntos) autorizados para comunicação MQTT.
+ **Recursos**. Referências a [dispositivos e volumes](access-local-resources.md) locais, [modelos de machine learning](ml-inference.md) e [segredos](secrets.md), usados para controle de acesso por conectores e funções do Lambda do Greengrass.
+ **Logs**. Configurações de registro para componentes AWS IoT Greengrass do sistema e funções Lambda. Para obter mais informações, consulte [Monitoramento com AWS IoT Greengrass registros](greengrass-logs-overview.md).

Você gerencia seu grupo Greengrass no Nuvem AWS e depois o implanta em um núcleo. A implantação copia a configuração do grupo para o arquivo `group.json` no dispositivo de núcleo. Esse arquivo está localizado em `greengrass-root/ggc/deployments/group`.

![\[Definição de nuvem do grupo do Greengrass implantado em um dispositivo de núcleo.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/group-deploy.png)


**nota**  
Durante uma implantação, o processo de daemon do Greengrass no dispositivo de núcleo é interrompido e, depois, reiniciado.

## Implantação de grupos a partir do console AWS IoT
<a name="manage-deployments-console"></a>

Você pode implantar um grupo e gerenciar suas implantações na página de configuração do grupo no AWS IoT console.

**nota**  
Para abrir essa página no console, selecione **Dispositivos Greengrass**, depois, **Grupos (V1)** e, em **Grupos do Greengrass**, selecione seu grupo.

**Para implantar a versão atual do grupo**  
+ Na página de configuração do grupo, selecione **Implantar**.

**Para visualizar o histórico de implantações do grupo**  
O histórico de implantações de um grupo inclui a data e a hora, a versão do grupo e o status de cada tentativa de implantação.  

1. Na página de configuração do grupo, selecione a guia **Implantações**.

1. Para ver mais informações sobre uma implantação, incluindo mensagens de erro, escolha **Implantações** no AWS IoT console, em Dispositivos **Greengrass**.

**Como reimplantar uma implantação de grupo**  
Você poderá querer reimplantar uma implantação se a implantação atual falhar ou reverter para uma versão de grupo diferente.  

1. No AWS IoT console, escolha **dispositivos Greengrass** e, em seguida, escolha **Grupos (V1**).

1. Selecione a guia **Implantações**.

1. Selecione a implantação que você deseja reimplantar e, em seguida selecione **Reimplantar**.

**Para redefinir implantações do grupo**  
Você pode querer redefinir implantações do grupo para mover ou excluir um grupo ou para remover as informações de implantação. Para obter mais informações, consulte [Redefinir implantações](reset-deployments-scenario.md).  

1. No AWS IoT console, escolha **dispositivos Greengrass** e, em seguida, escolha **Grupos (V1**).

1. Selecione a guia **Implantações**.

1. Selecione a implantação que você deseja redefinir e, em seguida selecione **Redefinir implantações**.

## Implantação de grupos com a API AWS IoT Greengrass
<a name="manage-deployments-api"></a>

A AWS IoT Greengrass API fornece as seguintes ações para implantar AWS IoT Greengrass grupos e gerenciar implantações em grupo. Você pode chamar essas ações da AWS CLI AWS IoT Greengrass API ou do AWS SDK.


| Ação | Descrição | 
| --- | --- | 
| [CreateDeployment](https://docs.aws.amazon.com/greengrass/v1/apireference/createdeployment-post.html) |  Cria uma implantação `NewDeployment` ou `Redeployment`. Você poderá querer reimplantar uma implantação se a implantação atual falhar. Ou você pode querer reimplantar para reverter para uma versão de grupo diferente. | 
| [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html) |  Retorna o status de uma implantação: `Building`, `InProgress`, `Success` ou `Failure`. Você pode configurar EventBridge eventos da Amazon para receber notificações de implantação. Para obter mais informações, consulte [Obter notificações de implantação](deployment-notifications.md). | 
| [ListDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html) | Retorna o histórico de implantações do grupo. | 
| [ResetDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html) |  Redefine as implantações do grupo. Você pode querer redefinir implantações do grupo para mover ou excluir um grupo ou para remover as informações de implantação. Para obter mais informações, consulte [Redefinir implantações](reset-deployments-scenario.md). | 

**nota**  
Para obter informações sobre operações de implantação em massa, consulte [Criar implantações em massa para grupos](bulk-deploy-cli.md).

### Obter o ID do grupo
<a name="api-get-group-id"></a>

O ID do grupo é normalmente usado em ações da API. Você pode usar a [ListGroups](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroups-get.html)ação para encontrar o ID do grupo-alvo na sua lista de grupos. Por exemplo, no AWS CLI, use o `list-groups` comando.

```
aws greengrass list-groups
```

Você também pode incluir a opção `query` para filtrar resultados. Por exemplo:
+ Para obter o último grupo criado:

  ```
  aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  ```
+ Para obter um grupo pelo nome:

  ```
  aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
  ```

  Os nomes de grupo não precisam ser exclusivos, portanto, vários grupos podem ser retornados.

Esta é uma resposta de exemplo do `list-groups`. As informações de cada grupo incluem o ID do grupo (na propriedade do `Id`) e o ID da versão mais recente do grupo (na propriedade da `LatestVersion`). Para obter outra versão IDs para um grupo, use o ID do grupo com [ListGroupVersions](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupversions-get.html).

**nota**  
<a name="find-group-ids-console"></a>Você também pode encontrar esses valores no AWS IoT console. O ID do grupo é exibido na página **Settings (Configurações)** do grupo. IDs As versões do grupo são exibidas na guia **Implantações** do grupo.

```
{
    "Groups": [
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "Name": "MyFirstGroup",
            "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
            "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "CreationTimestamp": "2019-11-11T05:47:31.435Z",
            "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
        },
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "Name": "GreenhouseSensors",
            "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
            "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "CreationTimestamp": "2020-01-07T19:58:36.774Z",
            "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
        },
        ...
    ]
}
```

Se você não especificar um Região da AWS, AWS CLI os comandos usarão a região padrão do seu perfil. Para devolver grupos em uma região diferente, inclua a *region* opção. Por exemplo:

```
aws greengrass list-groups --region us-east-1
```

## Visão geral do modelo de objeto de AWS IoT Greengrass grupo
<a name="api-overview"></a>

Ao programar com a AWS IoT Greengrass API, é útil entender o modelo de objetos de grupo do Greengrass.

### Grupos
<a name="api-overview-groups"></a>

Na AWS IoT Greengrass API, o `Group` objeto de nível superior consiste em metadados e uma lista de `GroupVersion` objetos. `GroupVersion`objetos são associados a um `Group` by ID.

![\[Um diagrama de um grupo, que consiste em metadados e em uma lista de versões do grupo.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/om-group.png)


### Versões do grupo
<a name="api-overview-versions"></a>

Os objetos `GroupVersion` definem a associação ao grupo. Cada `GroupVersion` faz referência a um `CoreDefinitionVersion` e a outras versões de componente por ARN. Essas referências determinam quais entidades devem ser incluídas no grupo.

![\[Um diagrama da versão de um grupo que faz referência a outros tipos de versão por ARN.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/om-groupversion.png)


Por exemplo, para incluir três funções do Lambda, um dispositivo e duas assinaturas no grupo, o `GroupVersion` faz referência:
+ Ao `CoreDefinitionVersion` que contém o núcleo necessário.
+ Ao `FunctionDefinitionVersion` que contém as três funções. 
+ Ao `DeviceDefinitionVersion` que contém o dispositivo cliente.
+ Ao `SubscriptionDefinitionVersion` que contém as duas assinaturas.

O `GroupVersion` implantado em um dispositivo de núcleo determina as entidades que estão disponíveis no ambiente local e como elas podem interagir.

### Componentes do grupo
<a name="api-overview-group-components"></a>

Os componentes que você adiciona a grupos têm uma hierarquia de três níveis:
+ Uma *definição* que faz referência a uma lista de *DefinitionVersion*objetos de um determinado tipo. Por exemplo, um `DeviceDefinition` faz referência a uma lista de objetos `DeviceDefinitionVersion`.
+ Um *DefinitionVersion*que contém um conjunto de entidades de um determinado tipo. Por exemplo, um `DeviceDefinitionVersion` contém uma lista de objetos `Device`.
+ Entidades individuais que definem suas propriedades e seu comportamento. Por exemplo, a `Device` define o ARN do dispositivo cliente correspondente no AWS IoT registro, o ARN de seu certificado de dispositivo e se sua sombra local é sincronizada automaticamente com a nuvem.

  É possível adicionar os seguintes tipos de entidades a um grupo:
  + [Conector](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-connector.html)
  + [Serviços](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-core.html)
  + [Dispositivo](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-device.html)
  + [Função](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-function.html)
  + [Logger](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-logger.html)
  + [Recurso](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-resource.html)
  + [Assinatura](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-subscription.html)

O exemplo `DeviceDefinition` a seguir faz referência a três objetos `DeviceDefinitionVersion`, cada um contendo vários objetos `Device`. Somente um `DeviceDefinitionVersion` de cada vez é usado em um grupo.

![\[Um diagrama de uma hierarquia de dispositivos, que consiste em DeviceDefinition DeviceDefinitionVersion, e objetos de dispositivo.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/om-devicedefinition.png)


### Atualizar grupos
<a name="api-update-groups"></a>

Na AWS IoT Greengrass API, você usa versões para atualizar a configuração de um grupo. As versões são imutáveis, portanto, para adicionar, remover ou alterar componentes do grupo, você deve criar *DefinitionVersion*objetos que contenham entidades novas ou atualizadas.

Você pode associar novos *DefinitionVersions*objetos a objetos de *definição* novos ou existentes. Por exemplo, é possível usar a ação `CreateFunctionDefinition` para criar um `FunctionDefinition` que inclui o `FunctionDefinitionVersion` como uma versão inicial ou usar a ação `CreateFunctionDefinitionVersion` e fazer referência a um `FunctionDefinition` existente.

Depois de criar os componentes do grupo, você cria um `GroupVersion` que contém todos os *DefinitionVersion*objetos que você deseja incluir no grupo. Depois, implante o `GroupVersion`.

Para implantar um `GroupVersion`, ele deve fazer referência a um `CoreDefinitionVersion` que contenha exatamente um `Core`. Todas as entidades referenciadas devem ser membros do grupo. Além disso, uma [função de serviço do Greengrass](service-role.md) deve estar associada à sua Conta da AWS no Região da AWS local em que você está implantando o. `GroupVersion`

**nota**  
As ações `Update` na API são usadas para alterar o nome de um `Group` ou de um objeto *Definition* do componente.

**Atualizando entidades que fazem referência a AWS recursos**

As funções e os [recursos secretos do Greengrass Lambda definem as propriedades específicas do Greengrass e também fazem referência aos recursos](secrets.md) correspondentes. AWS Para atualizar essas entidades, você pode fazer alterações no AWS recurso correspondente em vez de seus objetos do Greengrass. Por exemplo, as funções Lambda fazem referência a uma função AWS Lambda e também definem o ciclo de vida e outras propriedades específicas do grupo Greengrass.
+ Para atualizar o código da função do Lambda ou as dependências empacotadas, faça as alterações no AWS Lambda. Durante a próxima implantação do grupo, essas alterações serão recuperadas AWS Lambda e copiadas para seu ambiente local.
+ Para atualizar as [propriedades específicas do Greengrass](lambda-group-config.md), você cria um `FunctionDefinitionVersion` que contém as propriedades `Function` atualizadas.

**nota**  
As funções do Lambda do Greengrass podem fazer referência a uma função do Lambda pelo ARN do alias ou da versão. Se você fizer referência ao ARN do alias (recomendado), não será necessário atualizar o `FunctionDefinitionVersion` (ou o `SubscriptionDefinitionVersion`) ao publicar uma nova versão da função no AWS Lambda. Para obter mais informações, consulte [Referência de funções do Lambda por alias ou versão](lambda-functions.md#lambda-versions-aliases).

## Consulte também
<a name="deployments-see-also"></a>
+ [Obter notificações de implantação](deployment-notifications.md)
+ [Redefinir implantações](reset-deployments-scenario.md)
+ [Criar implantações em massa para grupos](bulk-deploy-cli.md)
+ [Solução de problemas de implantação](gg-troubleshooting.md#gg-troubleshooting-deploymentissues)<a name="see-also-gg-api-cli"></a>
+ [AWS IoT Greengrass Version 1 API Reference](https://docs.aws.amazon.com/greengrass/v1/apireference/)
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass comandos](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) na *Referência de AWS CLI Comandos*

# Obter notificações de implantação
<a name="deployment-notifications"></a>

As regras de EventBridge eventos da Amazon fornecem notificações sobre mudanças de estado nas implantações do seu grupo Greengrass. EventBridge fornece um fluxo quase em tempo real de eventos do sistema que descreve as mudanças nos AWS recursos. AWS IoT Greengrass envia esses eventos para EventBridge *pelo menos uma vez*. Isso significa que AWS IoT Greengrass pode enviar várias cópias de um determinado evento para garantir a entrega. Além disso, os listeners do evento poderão não receber os eventos na ordem em que estes ocorreram.

**nota**  
 EventBridge A Amazon é um serviço de ônibus de eventos que você pode usar para conectar seus aplicativos a dados de várias fontes, como [dispositivos principais do Greengrass](telemetry.md) e notificações de implantação. Para obter mais informações, consulte [O que é a Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) no *Guia do EventBridge usuário da Amazon*.

AWS IoT Greengrass emite um evento quando as implantações em grupo mudam de estado. Você pode criar uma EventBridge regra que seja executada para todas as transições de estado ou transições para estados que você especificar. Quando uma implantação entra em um estado que inicia uma regra, EventBridge invoca as ações de destino definidas na regra. Isso permite enviar notificações, capturar informações de eventos, executar ações corretivas ou iniciar outros eventos em resposta a uma alteração de estado. Por exemplo, você pode criar regras para os seguintes casos de uso:
+ Iniciar operações pós-implantação, como fazer download de ativos e notificar a equipe.
+ Enviar notificações após uma implantação bem-sucedida ou com falha.
+ Publicar métricas personalizadas sobre eventos de implantação.

AWS IoT Greengrass emite um evento quando uma implantação entra nos seguintes estados: `Building``InProgress`,`Success`, e. `Failure`

**nota**  
Atualmente, não há suporte para o monitoramento do status de uma operação de [implantação em massa](bulk-deploy-cli.md) . No entanto, AWS IoT Greengrass emite eventos de mudança de estado para implantações de grupos individuais que fazem parte de uma implantação em massa.

## Evento de alteração de status da implantação do grupo
<a name="events-message-format"></a>

O [evento](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html) para uma alteração no estado da implantação usa o seguinte formato:

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass Deployment Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "time":"2018-03-22T00:38:11Z",
    "region":"us-west-2",
    "resources":[],
    "detail":{    
        "group-id": "284dcd4e-24bc-4c8c-a770-EXAMPLEf03b8",
        "deployment-id": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681",
        "deployment-type": "NewDeployment|Redeployment|ResetDeployment|ForceResetDeployment",
        "status": "Building|InProgress|Success|Failure"
    }
}
```

Você pode criar regras que se aplicam a um ou mais grupos. Você pode filtrar regras por um ou mais dos seguintes tipos e estados de implantação:

**Tipos de implantação**  
+ `NewDeployment`. A primeira implantação de uma versão de grupo.
+ `ReDeployment`. Uma reimplantação de uma versão de grupo.
+ `ResetDeployment`. Exclui as informações de implantação armazenadas no Nuvem AWS e no AWS IoT Greengrass núcleo. Para obter mais informações, consulte [Redefinir implantações](reset-deployments-scenario.md).
+ `ForceResetDeployment`. Exclui informações de implantação armazenadas na Nuvem AWS e relata sucesso sem esperar que o núcleo responda. Também exclui informações de implantação armazenadas no núcleo se ele estiver conectado ou quando ele se conectar.

**Estados de implantação**  
+ `Building`. AWS IoT Greengrass está validando a configuração do grupo e criando artefatos de implantação.
+ `InProgress`. A implantação está em andamento no AWS IoT Greengrass núcleo.
+ `Success`. A implantação foi bem-sucedida.
+ `Failure`. Houve falha na implantação.

É possível que os eventos estejam duplicados ou fora de ordem. Para determinar a ordem dos eventos, use a propriedade `time`.

**nota**  
AWS IoT Greengrass não usa a `resources` propriedade, então ela está sempre vazia.

## Pré-requisitos para criar regras EventBridge
<a name="create-events-rule-prereqs"></a>

Antes de criar uma EventBridge regra para AWS IoT Greengrass, faça o seguinte:
+ Familiarize-se com eventos, regras e metas em EventBridge.
+ Crie e configure os alvos invocados por suas EventBridge regras. As regras podem invocar muitos tipos de destinos, incluindo:
  + Amazon Simple Notiﬁcation Service (Amazon SNS)
  + AWS Lambda funções
  + Amazon Kinesis Video Streams
  + Filas do Amazon Simple Queue Service (Amazon SQS)

Para obter mais informações, consulte [O que é a Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) e [Introdução à Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) no *Guia do EventBridge usuário da Amazon*.

## Configurar notificações de implantação (console)
<a name="create-events-rule-console"></a>

Use as etapas a seguir para criar uma EventBridge regra que publique um tópico do Amazon SNS quando o estado de implantação mudar para um grupo. Isso permite que servidores web, endereços de e-mail e outros assinantes de tópicos respondam ao evento. Para obter mais informações, consulte [Criação de uma EventBridge regra que é acionada em um evento a partir de um AWS recurso no Guia](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html) do * EventBridge usuário da Amazon*.

1. Abra o [ EventBridgeconsole da Amazon](https://console.aws.amazon.com/events/).

1. No painel de navegação, escolha **Regras**.

1. Escolha **Create rule**.

1. Insira um nome e uma descrição para a regra.

   Uma regra não pode ter o mesmo nome que outra na mesma Região e barramento de eventos.

1. Em **Barramento de eventos**, selecione o barramento de eventos que você deseja associar a essa regra. Se quiser que essa regra faça a correspondência com eventos provenientes da sua conta, escolha **Barramento de eventos padrão da AWS **. Quando um AWS serviço em sua conta emite um evento, ele sempre vai para o barramento de eventos padrão da sua conta.

1. Em **Rule type**, escolha **Rule with an event pattern**.

1. Selecione **Next** (Próximo).

1. Em **Event source** (Origem do evento), selecione **AWS services** (Serviços da ).

1. Em **Padrão do evento**, selecione **Serviços da AWS **.

1. Em ** Serviço da AWS **, selecione Greengrass.

1. Em **Tipo de evento**, selecione **Greengrass Deployment Status Change (Alteração de status de Implantação do Greengrass)**.
**nota**  
A **chamada de AWS API via** tipo de CloudTrail evento é baseada na AWS IoT Greengrass integração com AWS CloudTrail. Você pode usar essa opção para criar regras iniciadas por chamadas de leitura ou gravação para a AWS IoT Greengrass API. Para obter mais informações, consulte [Registrando chamadas de AWS IoT Greengrass API com AWS CloudTrail](logging-using-cloudtrail.md).

1. Selecione os estados de implantação que iniciam uma notificação.
   + Para receber notificações de todos os eventos de alteração de estado, selecione **Any state (Qualquer estado)**.
   + Para receber notificações apenas para alguns eventos de alteração de estado, selecione **Specific state(s) (Estados específicos)** e, depois, selecione os estados de destino.

1. Selecione os tipos de implantação que iniciam uma notificação.
   + Para receber notificações sobre todos os tipos de implantação, selecione **Any state (Qualquer estado)**.
   + Para receber notificações somente para alguns tipos de implantação, selecione **Specific state(s) (Estados específicos)** e, depois, selecione os tipos de implantação de destino.

1. Selecione **Next** (Próximo).

1. Em **Target types** (Tipos de destinos), selecione **AWS service** (Serviço da ).

1. Em **Selecionar um destino**, configure seu destino. Este exemplo usa um tópico do Amazon SNS, mas você pode configurar outros tipos de destino para enviar notificações.

   1. Em **Target (Destino)**, selecione **SNS topic (Tópico do SNS)**.

   1. Em **Topic (Tópico)**, selecione o tópico de destino.

   1. Selecione **Next** (Próximo).

1. Em **Tags**, defina tags para a regra ou deixe os campos em branco.

1. Selecione **Next** (Próximo).

1. Analise os detalhes da regra e selecione **Criar regra**.

## Configurar notificações de implantação (CLI)
<a name="create-events-rule-cli"></a>

Use as etapas a seguir para criar uma EventBridge regra que publique um tópico do Amazon SNS quando o estado de implantação mudar para um grupo. Isso permite que servidores web, endereços de e-mail e outros assinantes de tópicos respondam ao evento.

1. Crie a regra.
   + *group-id*Substitua pelo ID do seu AWS IoT Greengrass grupo.

   ```
   aws events put-rule \
     --name TestRule \
     --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"group-id\": [\"group-id\"]}}"
   ```

   As propriedades que são omitidas do padrão são ignoradas.

1. Adicione o tópico como um destino de regra.
   + *topic-arn*Substitua pelo ARN do seu tópico do Amazon SNS.

   ```
   aws events put-targets \
     --rule TestRule \
     --targets "Id"="1","Arn"="topic-arn"
   ```
**nota**  
Para permitir que EventBridge a Amazon ligue para seu tópico de destino, você deve adicionar uma política baseada em recursos ao seu tópico. Para obter mais informações, consulte as [permissões do Amazon SNS no Guia EventBridge ](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions) *do usuário da Amazon*.

Para obter mais informações, consulte [Eventos e padrões de eventos EventBridge no](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) *Guia do EventBridge usuário da Amazon*.

## Configurar notificações de implantação (CloudFormation)
<a name="create-events-rule-cloudformation"></a>

Use CloudFormation modelos para criar EventBridge regras que enviem notificações sobre mudanças de estado para suas implantações de grupos do Greengrass. Para obter mais informações, consulte a [referência EventBridge de tipo de recurso da Amazon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Events.html) no *Guia AWS CloudFormation do usuário*.

## Consulte também
<a name="deployment-notifications-see-also"></a>
+ [Implante AWS IoT Greengrass grupos em um AWS IoT Greengrass núcleo](deployments.md)
+ [O que é a Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) no *Guia do EventBridge usuário da Amazon*

# Redefinir implantações
<a name="reset-deployments-scenario"></a>

Esse recurso está disponível para o AWS IoT Greengrass Core v1.1 e versões posteriores.

Você pode querer redefinir as implantações de um grupo para:
+ Exclua o grupo, por exemplo, quando você quiser mover o núcleo do grupo para outro grupo ou se o núcleo do grupo tiver sido recriado. Antes de excluir um grupo, você deve redefinir as implantações do grupo para usar o núcleo com outro grupo do Greengrass.
+ Mover o núcleo do grupo para um grupo diferente.
+ Reverter o grupo para seu estado antes de qualquer implantação.
+ Remover a configuração de implantação do dispositivo de núcleo.
+ Excluir dados confidenciais do dispositivo de núcleo ou da nuvem.
+ Implantar um novo grupo de configuração em um núcleo sem a necessidade de substituir o núcleo por outro no grupo atual.

**nota**  
A funcionalidade de redefinição de implantações não está disponível no software de núcleo do AWS IoT Greengrass v1.0.0. Não é possível excluir um grupo que foi implantado usando a v1.0.0.

A operação de redefinição de implantações primeiro limpa todas as informações de implantação armazenadas na nuvem para determinado grupo. Depois, ele também instrui o dispositivo de núcleo do grupo a limpar todas as informações relacionadas à implantação (funções do função do Lambda, logs de usuário, banco de dados shadow e certificado do servidor, mas não o `config.json` definido pelo usuário nem os certificados de núcleo do Greengrass). Não é possível iniciar uma redefinição de implantações para um grupo se o grupo tiver, no momento, uma implantação com o status `In Progress` ou `Building`.

## Redefinir implantações a partir do console AWS IoT
<a name="reset-deployments-console"></a>

Você pode redefinir as implantações de grupo na página de configuração do grupo no AWS IoT console.

1. <a name="console-gg-groups"></a>No painel de navegação do AWS IoT console, em **Gerenciar**, expanda dispositivos **Greengrass** e **escolha Grupos (**V1).

1. Selecione o grupo de destino.

1. Na guia **Implantações**, selecione **Redefinir implantações**.

1. Na caixa de diálogo **Redefinir implantações para este grupo do Greengrass**, digite **confirm** para concordar e selecione **Redefinir implantação**.

## Redefina as implantações com a API AWS IoT Greengrass
<a name="reset-deployments-api"></a>

Você pode usar a `ResetDeployments` ação na AWS IoT Greengrass API ou no AWS CLI AWS SDK para redefinir as implantações. Os exemplos deste tópico usam a CLI.

```
aws greengrass reset-deployments --group-id GroupId [--force]
```Argumentos do comando `reset-deployments` da CLI:

`--group-id`  
O ID do grupo. Use o comando `list-groups` para obter esse valor.

`--force`  
Opcional. Use esse parâmetro se o dispositivo de núcleo do grupo foi perdido, roubado ou destruído. Essa opção faz com que o processo de implantação de redefinição relate êxito depois que todas as informações de implantação na nuvem tiverem sido limpas, sem esperar que um dispositivo de núcleo responda. No entanto, se o dispositivo de núcleo estiver ou se tornar ativo, ele também executará operações de limpeza.

A saída do comando `reset-deployments` da CLI tem a seguinte aparência:

```
{
    "DeploymentId": "4db95ef8-9309-4774-95a4-eea580b6ceef",
    "DeploymentArn": "arn:aws:greengrass:us-west-2:106511594199:/greengrass/groups/b744ed45-a7df-4227-860a-8d4492caa412/deployments/4db95ef8-9309-4774-95a4-eea580b6ceef"
}
```

Você pode verificar o status da implantação de redefinição com comando `get-deployment-status` da CLI:

```
aws greengrass get-deployment-status --deployment-id DeploymentId --group-id GroupId
```Argumentos do comando `get-deployment-status` da CLI:

`--deployment-id`  
O ID da implantação.

`--group-id`  
O ID do grupo.

A saída do comando `get-deployment-status` da CLI tem a seguinte aparência:

```
{
    "DeploymentStatus": "Success",
    "UpdatedAt": "2017-04-04T00:00:00.000Z"
}
```

O `DeploymentStatus` é definido como `Building` quando a implantação de redefinição está sendo preparada. Quando a implantação redefinida está pronta, mas o AWS IoT Greengrass núcleo não captou a implantação redefinida, `DeploymentStatus` está`InProgress`.

Se a operação de redefinição falhar, as informações de erro serão retornados na resposta.

## Consulte também
<a name="reset-deployments-see-also"></a>
+ [Implante AWS IoT Greengrass grupos em um AWS IoT Greengrass núcleo](deployments.md)
+ [ResetDeployments ](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html)na *Referência da AWS IoT Greengrass Version 1 API*
+ [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html)na *Referência da AWS IoT Greengrass Version 1 API*

# Criar implantações em massa para grupos
<a name="bulk-deploy-cli"></a>

 Você pode usar chamadas de API simples para implantar um grande número de grupos do Greengrass ao mesmo tempo. Essas implantações são acionadas com uma taxa adaptável que tem um limite superior fixo. 

 Este tutorial descreve como usar o AWS CLI para criar e monitorar uma implantação de grupo em massa no AWS IoT Greengrass. O exemplo de implantação em massa deste tutorial contém vários grupos. Você pode usar o exemplo na sua implementação para adicionar quantos grupos precisar. 

 O tutorial contém as seguintes etapas de nível elevado: 

1. [Criar e fazer upload do arquivo de entrada de implementação em massa](#bulk-deploy-cli-create-input-file)

1. [Criar e configurar uma função de execução do IAM para implantação em lote](#bulk-deploy-cli-create-role)

1. [Permitir o acesso da função de execução ao bucket do S3](#bulk-deploy-cli-modify-bucket)

1. [Implantar os grupos](#bulk-deploy-cli-start-bulk-deployments)

1. [Teste a implantação](#bulk-deploy-cli-test)

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

 Para concluir este tutorial, é necessário: 
+  Um ou mais grupos implantáveis do Greengrass. Para obter mais informações sobre a criação de grupos e cores do AWS IoT Greengrass , consulte [Começando com AWS IoT Greengrass](gg-gs.md). 
+  O AWS CLI instalado e configurado em sua máquina. Para obter mais informações, consulte o [Guia do usuário do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html). 
+ Um bucket S3 criado da Região da AWS mesma AWS IoT Greengrass forma que. Para obter mais informações, consulte [Criando e configurando um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-configure-bucket.html) no *Guia do usuário do Amazon Simple Storage Service*. 
**nota**  
 Atualmente, buckets habilitados SSE KMS não são compatíveis. 

## Etapa 1: Criar e fazer upload do arquivo de entrada de implementação em massa
<a name="bulk-deploy-cli-create-input-file"></a>

 Nesta etapa, você cria um arquivo de entrada para implantação e faz upload dele para o seu bucket do Amazon S3. Esse arquivo é um arquivo JSON serializado e delimitado por linhas que contém informações sobre cada grupo em sua implantação em massa. AWS IoT Greengrass usa essas informações para implantar cada grupo em seu nome quando você inicializa a implantação de grupos em massa. 

1.  Execute o seguinte comando a fim de obter o `groupId` para cada grupo que você deseja implantar. Você insere o `groupId` no seu arquivo de entrada da implantação em massa para que o AWS IoT Greengrass possa identificar cada grupo a ser implantado. 
**nota**  
<a name="find-group-ids-console"></a>Você também pode encontrar esses valores no AWS IoT console. O ID do grupo é exibido na página **Settings (Configurações)** do grupo. IDs As versões do grupo são exibidas na guia **Implantações** do grupo.

   ```
   aws greengrass list-groups
   ```

    A resposta contém informações sobre cada grupo em sua AWS IoT Greengrass conta: 

   ```
   {
     "Groups": [
       {
         "Name": "string",
         "Id": "string",
         "Arn": "string",
         "LastUpdatedTimestamp": "string",
         "CreationTimestamp": "string",
         "LatestVersion": "string",
         "LatestVersionArn": "string"
       }
     ],
     "NextToken": "string"
   }
   ```

    Execute o seguinte comando a fim de obter o `groupVersionId` de cada grupo que você deseja implantar. 

   ```
   list-group-versions --group-id groupId
   ```

    A resposta contém informações sobre todas as versões no grupo. Anote o ID da valor `Version` para a versão do grupo você deseja usar. 

   ```
   {
     "Versions": [
       {
         "Arn": "string",
         "Id": "string",
         "Version": "string",
         "CreationTimestamp": "string"
       }
     ],
     "NextToken": "string"
   }
   ```

1.  No terminal do computador ou no editor de sua escolha, crie um arquivo,*MyBulkDeploymentInputFile*, a partir do exemplo a seguir. Esse arquivo contém informações sobre cada AWS IoT Greengrass grupo a ser incluído em uma implantação em massa. Embora esse exemplo defina vários grupos para esse tutorial, seu arquivo pode conter apenas um. 
**nota**  
 O tamanho do arquivo deve ser menor que 100 MB. 

   ```
   {"GroupId":"groupId1", "GroupVersionId":"groupVersionId1", "DeploymentType":"NewDeployment"}
   {"GroupId":"groupId2", "GroupVersionId":"groupVersionId2", "DeploymentType":"NewDeployment"}
   {"GroupId":"groupId3", "GroupVersionId":"groupVersionId3", "DeploymentType":"NewDeployment"}
   ...
   ```

    Cada registro (ou linha) contém um objeto do grupo. Cada objeto do grupo contém seu `GroupId` e `GroupVersionId` correspondentes e um `DeploymentType`. Atualmente, AWS IoT Greengrass suporta somente tipos de implantação em `NewDeployment` massa. 

    Salve e feche seu arquivo. Anote a localização do arquivo. 

1.  Use o comando a seguir em seu terminal para fazer upload do arquivo de entrada no seu bucket do Amazon S3. Substitua o caminho do arquivo pelo local e nome do seu arquivo. Para obter informações, consulte [Adicionar um objeto a um bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/PuttingAnObjectInABucket.html). 

   ```
   aws s3 cp path/MyBulkDeploymentInputFile s3://amzn-s3-demo-bucket/
   ```

## Etapa 2: Criar e configurar uma função de execução do IAM
<a name="bulk-deploy-cli-create-role"></a>

 Nesta etapa, você usa o console do IAM para criar uma função de execução autônoma. Em seguida, você estabelece uma relação de confiança entre a função AWS IoT Greengrass e garante que seu usuário do IAM tenha `PassRole` privilégios para sua função de execução. Isso permite AWS IoT Greengrass assumir sua função de execução e criar as implantações em seu nome. 

1.  Use a política a seguir para criar uma função de execução. Esse documento de política permite que o AWS IoT Greengrass acesse seu arquivo de entrada da implantação em massa ao criar cada implantação em seu nome. 

    Para obter mais informações sobre como criar um perfil do IAM e delegar permissões, consulte [Criar perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "greengrass:CreateDeployment",
               "Resource": [
               "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId1",
       "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId2",
       "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId3"
               ]
           }
       ]
   }
   ```

------
**nota**  
 Essa política deve ter um recurso para cada grupo ou versão do grupo do seu arquivo de entrada da implantação em massa a ser implantado pelo AWS IoT Greengrass. Para permitir o acesso a todos os grupos, para `Resource`, especifique um asterisco:   

   ```
   "Resource": ["*"]
   ```

1.  Modifique a relação de confiança da sua função de execução a fim de incluir o AWS IoT Greengrass. Isso permite ao AWS IoT Greengrass usar sua função de execução e as permissões anexadas a ele. Para obter informações, consulte [Editar a relação de confiança de uma função existente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/edit_trust.html). 

   Recomendamos que você também inclua as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount` em sua política de confiança para ajudar a evitar o problema de segurança *confused deputy*. As chaves de contexto de condição restringem o acesso para permitir somente as solicitações provenientes da conta especificada e do espaço de trabalho do Greengrass. Para obter mais informações sobre o problema confused deputy, consulte [Prevenção do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
           "aws:SourceAccount": "123456789012"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:us-east-1:123456789012:*"
           }
         }
       }
     ]
   }
   ```

------

1.  Forneça permissões `PassRole` do IAM para a sua função de execução ao usuário do IAM. Esse usuário do IAM é o usado para iniciar a implantação em massa. As permissões `PassRole` permitem que o usuário do IAM passe a sua função de execução ao AWS IoT Greengrass para uso. Para obter mais informações, consulte [Conceder permissões a um usuário para passar uma função para um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html). 

    Use o seguinte exemplo para atualizar a política do IAM anexada ao seu perfil de execução. Modifique este exemplo, conforme necessário. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Stmt1508193814000",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": [
                   "arn:aws:iam::123456789012:user/executionRoleArn"
               ],
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "greengrass.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

## Etapa 3: Permitir o acesso da função de execução ao bucket do S3
<a name="bulk-deploy-cli-modify-bucket"></a>

 Para iniciar sua implantação em massa, sua função de execução deve ser capaz de ler o arquivo de entrada da implantação em massa do seu bucket do Amazon S3. Anexe a política de exemplo a seguir ao seu bucket do Amazon S3 para que suas permissões `GetObject` sejam acessíveis à sua função de execução. 

 Para obter mais informações, consulte [Como eu faço para adicionar uma política de bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html) 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "examplePolicy",
    "Statement": [
        {
            "Sid": "Stmt1535408982966",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "executionRoleArn"
                ]
            },
            "Action": "s3:GetObject",
            "Resource":
            "arn:aws:s3:::amzn-s3-demo-bucket/objectKey"
        }
    ]
}
```

------

 Você pode usar o comando a seguir em seu terminal para verificar a política do seu bucket: 

```
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket
```

**nota**  
 Você pode modificar diretamente sua função de execução a fim de conceder a ela permissões `GetObject` para o seu bucket do Amazon S3. Para isso, anexe a seguinte política de exemplo à sua função de execução.   

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/objectKey"
        }
    ]
}
```

## Etapa 4: Implantar os grupos
<a name="bulk-deploy-cli-start-bulk-deployments"></a>

 Nesta etapa, você inicia uma operação de implantação em massa para todas as versões do grupo configuradas no seu arquivo de entrada da implantação em massa. A ação de implantação para cada uma de suas versões de grupo é do tipo `NewDeploymentType`. 

**nota**  
 Você não pode chamar **StartBulkDeployment** enquanto outra implantação em massa da mesma conta ainda estiver em execução. A solicitação foi rejeitada. 

1.  Use o comando a seguir para iniciar a implantação em massa. 

    Recomendamos que você inclua um token `X-Amzn-Client-Token` em cada solicitação **StartBulkDeployment**. Essas solicitações são idempotentes com relação ao token e os parâmetros da solicitação. Esse token pode ser qualquer string exclusiva e com diferenciação entre maiúsculas de minúsculas de até 64 caracteres ASCII. 

   ```
   aws greengrass start-bulk-deployment --cli-input-json "{
             "InputFileUri":"URI of file in S3 bucket", 
             "ExecutionRoleArn":"ARN of execution role",
             "AmznClientToken":"your Amazon client token"
             }"
   ```

    O comando deve resultar em um código de status bem-sucedido `200`, junto com a seguinte resposta: 

   ```
   {
     "bulkDeploymentId": UUID
   }
   ```

    Anote o ID da implantação em massa. Ele pode ser usado para verificar o status de sua implantação em massa. 
**nota**  
Embora as operações de implantação em massa não sejam suportadas atualmente, você pode criar regras de EventBridge eventos da Amazon para receber notificações sobre mudanças de status de implantação para grupos individuais. Para obter mais informações, consulte [Obter notificações de implantação](deployment-notifications.md).

1.  Use o comando a seguir para verificar o status da sua implantação em massa. 

   ```
   aws greengrass get-bulk-deployment-status --bulk-deployment-id 1234567
   ```

    O comando deve retornar um código de status bem-sucedido `200`, além de uma carga JSON de informações: 

   ```
    {
     "BulkDeploymentStatus": Running,
     "Statistics": {
        "RecordsProcessed": integer,
        "InvalidInputRecords": integer,
        "RetryAttempts": integer
     },
     "CreatedAt": "string",
     "ErrorMessage": "string",
     "ErrorDetails": [
       {
         "DetailedErrorCode": "string",
         "DetailedErrorMessage": "string"
       }
     ]
   }
   ```

    `BulkDeploymentStatus` contém o status atual da execução em massa. A execução pode ter um dos seis status diferentes: 
   + `Initializing`. A solicitação de implantação em massa foi recebida, e a execução está prestes a ser iniciada.
   + `Running`. A execução da implantação em massa foi iniciada.
   + `Completed`. A execução da implantação em massa finalizou o processamento de todos os registros.
   + `Stopping`. A execução da implantação em massa recebeu um comando de interrupção e será encerrada em breve. Não é possível iniciar uma nova implantação em massa enquanto uma implantação anterior está em estado `Stopping`.
   + `Stopped`. A execução da implantação em massa foi interrompida manualmente.
   + `Failed`. A execução da implantação em massa encontrou um erro e foi encerrada. É possível encontrar detalhes do erro no campo `ErrorDetails`.

    A carga JSON também inclui informações estatísticas sobre o progresso da implantação em massa. Você pode usar essas informações para determinar a quantidade de grupos que foram processados e quantos deles falharam. As informações estatísticas incluem: 
   +  `RecordsProcessed`: o número de registro de tentativas do grupo. 
   +  `InvalidInputRecords`: o número total de registros que não apresentaram erro de nova tentativa. Por exemplo, isso pode ocorrer se o registro de um grupo do arquivo de entrada usa um formato inválido ou especifica uma versão de grupo inexistente, ou se a execução não concede permissão para implantar um grupo ou versão do grupo. 
   +  `RetryAttempts`: o número de tentativas de implantação que apresentaram erro de nova tentativa. Por exemplo, uma nova tentativa é acionada se a tentativa de implantar um grupo retorna um erro de limitação. A implantação do grupo pode ser repetida até cinco vezes. 

    No caso de uma falha de execução da implantação em massa, essa carga também inclui uma seção `ErrorDetails` que pode ser usada para solução de problemas. Ela contém informações sobre a causa da falha de execução. 

    Você pode verificar periodicamente o status da implantação em massa para confirmar se ela está progredindo conforme esperado. Depois de concluir a implantação, `RecordsProcessed` deve ser igual ao número de grupos de implantação em seu arquivo de entrada da implantação em massa. Isso indica que cada registro foi processado. 

## Etapa 5: Testar a implantação
<a name="bulk-deploy-cli-test"></a>

 Use o comando **ListBulkDeployments** para encontrar o ID da implantação em massa. 

```
aws greengrass list-bulk-deployments
```

 Esse comando retorna uma lista de todas as suas implantações em massa da mais recente para a menos recente, incluindo o `BulkDeploymentId`. 

```
{
  "BulkDeployments": [
    {
      "BulkDeploymentId": 1234567,
      "BulkDeploymentArn": "string",
      "CreatedAt": "string"
    }
  ],
  "NextToken": "string"
}
```

 Agora, chame o comando **ListBulkDeploymentDetailedReports** para reunir informações detalhadas sobre cada implantação. 

```
aws greengrass list-bulk-deployment-detailed-reports --bulk-deployment-id 1234567 
```

 O comando deve retornar um código de status bem-sucedido `200`, junto com uma carga JSON de informações: 

```
{ 
  "BulkDeploymentResults": [
    {
      "DeploymentId": "string",
      "GroupVersionedArn": "string",
      "CreatedAt": "string",
      "DeploymentStatus": "string",
      "ErrorMessage": "string",
      "ErrorDetails": [
        {
          "DetailedErrorCode": "string",
          "DetailedErrorMessage": "string"
        }
      ]
    }
  ],
  "NextToken": "string"
}
```

 Essa carga geralmente contém uma lista paginada de cada implantação e seu status de implantação da mais recente para a menos recente. Ela também contém mais informações no caso de uma falha de execução da implantação em massa. Novamente, o número total de implantações listadas deve ser igual ao número de grupos que você identificou no seu arquivo de entrada da implantação em massa. 

 As informações retornadas podem ser alteradas até que as implantações estejam em estado terminal (êxito ou falha). Você pode chamar esse comando periodicamente até lá. 

## Solução de problemas de implantações em massa
<a name="bulk-deploy-cli-troubleshooting"></a>

 Se a implantação em massa não for bem-sucedida, você poderá tentar as etapas de solução de problemas a seguir. Execute os comandos no seu terminal. 

### Solução de problemas de erros do arquivo de entrada
<a name="bulk-deploy-cli-troubleshooting-input-file-errors"></a>

 A implantação em massa pode falhar em caso de erros de sintaxe no arquivo de entrada da implantação em massa. Isso retorna um status `Failed` de implantação em massa com uma mensagem de erro indicando o número da linha do primeiro erro de validação. Existem quatro erros possíveis: 
+ 

  ```
  InvalidInputFile: Missing GroupId at line number: line number
  ```

   Esse erro indica que a linha fornecida do arquivo de entrada não é capaz de registrar o parâmetro especificado. Os possíveis parâmetros ausentes são `GroupId` e `GroupVersionId`. 
+ 

  ```
  InvalidInputFile: Invalid deployment type at line number : line number. Only valid type is 'NewDeployment'.
  ```

   Esse erro indica a linha fornecida do arquivo de entrada lista um tipo inválido de implantação. No momento, o único tipo de implantação compatível é `NewDeployment`. 
+ 

  ```
  Line %s is too long in S3 File. Valid line is less than 256 chars.
  ```

   Esse erro indica que a linha fornecida do arquivo de entrada é longa demais e deve ser reduzida. 
+ 

  ```
  Failed to parse input file at line number: line number
  ```

   Esse erro indica que a linha fornecida do arquivo de entrada não é considerada um json válido. 

### Verifique se há implantações simultâneas em massa
<a name="bulk-deploy-cli-troubleshooting-concurrent-bulk-deployments"></a>

 Não é possível iniciar uma nova implantação em massa enquanto outra ainda está em execução ou em estado não terminal. Isso pode resultar em um `Concurrent Deployment Error`. Você pode usar o comando **ListBulkDeployments** para verificar se uma implantação em massa está sendo executada no momento. Esse comando lista as implantações em massa da mais recente para a menos recente. 

```
{
  "BulkDeployments": [
    {
      "BulkDeploymentId": BulkDeploymentId,
      "BulkDeploymentArn": "string",
      "CreatedAt": "string"
    }
  ],
  "NextToken": "string"
}
```

 Use o `BulkDeploymentId` da primeira implantação em massa listada para executar o comando **GetBulkDeploymentStatus**. Se a sua implantação em massa mais recente estiver em um estado de execução (`Initializing` ou `Running`), use o comando a seguir para interromper a implantação em massa. 

```
aws greengrass stop-bulk-deployment --bulk-deployment-id BulkDeploymentId
```

 Essa ação resulta em um status `Stopping` até que a implantação seja `Stopped`. Após a implantação atingir o status `Stopped`, você pode iniciar uma nova implantação em massa. 

### Verifique ErrorDetails
<a name="bulk-deploy-cli-troubleshooting-check-error-details"></a>

 Execute o comando `GetBulkDeploymentStatus` para retornar uma carga JSON que contém informações sobre qualquer falha de execução da implantação em massa. 

```
  "Message": "string",
  "ErrorDetails": [
    {
      "DetailedErrorCode": "string",
      "DetailedErrorMessage": "string"
    }
  ]
```

 Ao obter um erro, a carga JSON `ErrorDetails` retornada por essa chamada contém mais informações sobre a falha de execução da implantação em massa. Um código de status de erro na série `400`, por exemplo, indica um erro de entrada, nos parâmetros de entrada ou nas dependências do chamador. 

### Verifique o registro AWS IoT Greengrass principal
<a name="bulk-deploy-cli-troubleshooting-check-core-log"></a>

 Você pode solucionar problemas visualizando os registros AWS IoT Greengrass principais. Use os comandos a seguir para visualizar o `runtime.log`: 

```
cd /greengrass/ggc/var/log
sudo cat system/runtime.log | more
```

Para obter mais informações sobre AWS IoT Greengrass registro em log, consulte[Monitoramento com AWS IoT Greengrass registros](greengrass-logs-overview.md). 

## Consulte também
<a name="bulk-deploy-cli-see-also"></a>

Para saber mais, consulte os seguintes recursos:
+ [Implante AWS IoT Greengrass grupos em um AWS IoT Greengrass núcleo](deployments.md)
+ [Comandos do API do Amazon S3](https://docs.aws.amazon.com/cli/latest/reference/s3api) na *Referência de comandos da AWS CLI *.
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass comandos](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) na *Referência de AWS CLI Comandos*