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.
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á.
Criar implantações em massa para grupos
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:
Pré-requisitos
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.
-
O AWS CLI instalado e configurado em sua máquina. Para obter mais informações, consulte o Guia do usuário do AWS CLI.
-
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 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
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.
-
Execute o seguinte comando a fim de obter o
groupIdpara cada grupo que você deseja implantar. Você insere ogroupIdno seu arquivo de entrada da implantação em massa para que o AWS IoT Greengrass possa identificar cada grupo a ser implantado.nota
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-groupsA 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
groupVersionIdde cada grupo que você deseja implantar.list-group-versions --group-idgroupIdA resposta contém informações sobre todas as versões no grupo. Anote o ID da valor
Versionpara a versão do grupo você deseja usar.{ "Versions": [ { "Arn": "string", "Id": "string", "Version": "string", "CreationTimestamp": "string" } ], "NextToken": "string" } -
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
GroupIdeGroupVersionIdcorrespondentes e umDeploymentType. Atualmente, AWS IoT Greengrass suporta somente tipos de implantação emNewDeploymentmassa.Salve e feche seu arquivo. Anote a localização do arquivo.
-
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.
aws s3 cppath/MyBulkDeploymentInputFiles3://amzn-s3-demo-bucket/
Etapa 2: Criar e configurar uma função de execução do IAM
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.
-
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.
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": ["*"] -
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.
Recomendamos que você também inclua as chaves de contexto de condição global
aws:SourceArneaws:SourceAccountem 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. -
Forneça permissões
PassRoledo 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õesPassRolepermitem 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.Use o seguinte exemplo para atualizar a política do IAM anexada ao seu perfil de execução. Modifique este exemplo, conforme necessário.
Etapa 3: Permitir o acesso da função de execução ao bucket do S3
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?
Você pode usar o comando a seguir em seu terminal para verificar a política do seu bucket:
aws s3api get-bucket-policy --bucketamzn-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.
Etapa 4: Implantar os grupos
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.
-
Use o comando a seguir para iniciar a implantação em massa.
Recomendamos que você inclua um token
X-Amzn-Client-Tokenem 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.
-
Use o comando a seguir para verificar o status da sua implantação em massa.
aws greengrass get-bulk-deployment-status --bulk-deployment-id1234567O 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" } ] }BulkDeploymentStatusconté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 estadoStopping. -
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 campoErrorDetails.
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
ErrorDetailsque 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,
RecordsProcesseddeve 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
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-id1234567
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
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 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: MissingGroupIdat line number:line numberEsse 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
GroupIdeGroupVersionId. -
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%sis 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 numberEsse 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
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-idBulkDeploymentId
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
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
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, consulteMonitoramento com AWS IoT Greengrass registros.
Consulte também
Para obter mais informações, consulte os seguintes recursos:
-
Implante AWS IoT Greengrass grupos em um AWS IoT Greengrass núcleo
-
Comandos do API do Amazon S3 na Referência de comandos da AWS CLI .
-
AWS IoT Greengrass comandos na Referência de AWS CLI Comandos