Chamada da API de verificação de integridade local - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

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

Chamada da API de verificação de integridade local

AWS IoT Greengrass contém uma API HTTP local que retorna um snapshot do estado atual dos processos de trabalho locais iniciados pelo AWS IoT Greengrass. Esse snapshot inclui funções do Lambda do sistema e definidas pelo usuário. As funções do Lambda do sistema são componentes do software AWS IoT Greengrass Core. Eles são executados como processos de operadores locais no dispositivo principal e gerenciam operações como roteamento de mensagens, sincronização de sombras locais e detecção automática do endereço IP.

A API de verificação de integridade é compatível com as seguintes solicitações:

As solicitações são enviadas localmente no dispositivo e não exigem conexão com a Internet.

Obter informações de integridade sobre todos os operadores

Enviar uma solicitação GET para obter informações de integridade sobre todos os operadores em execução.

  • Substituir a porta com o número da porta do IPC.

GET http://localhost:port/2016-11-01/health/workers
port

O número da porta do IPC.

O valor pode variar entre 1024 e 65535. O valor padrão é 8000.

Para alterar o número desta porta, você pode atualizar a propriedade ggDaemonPort no arquivo config.json. Para obter mais informações, consulte Arquivo de configuração de núcleo do AWS IoT Greengrass.

Exemplo de solicitação

O exemplo de solicitação curl a seguir obtém informações de integridade de todos os operadores.

curl http://localhost:8000/2016-11-01/health/workers

Resposta do JSON

Essa solicitação retorna uma matriz de objetos de informações de integridade dos operadores.

Exemplo de resposta

O exemplo de resposta a seguir lista objetos de informações de integridade de todos os processos de operadores que foram iniciados pelo AWS IoT Greengrass.

[ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:::function:GGSecretManager:1", "WorkerId": "a9916cc2-1b4d-4f0e-4b12-b1872EXAMPLE", "ProcessId": "9798", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073EXAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" }, ... ]

Obtenha informações de integridade sobre determinados operadores

Enviar uma solicitação POST para obter informações de integridade sobre determinados operadores. Substituir a porta com o número da porta do IPC. O padrão é 8000.

POST http://localhost:port/2016-11-01/health/workers

Exemplo de solicitação

O exemplo de solicitação curl a seguir obtém informações de integridade de determinados operadores.

curl --data "@body.json" http://localhost:8000/2016-11-01/health/workers

Veja um exemplo da estrutura de uma solicitação body.json abaixo:

{ "FuncArns": [ "arn:aws:lambda:::function:GGShadowService:1", "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3" ] }

A estrutura da solicitação contém uma matriz FuncArns.

FuncArns

Uma lista de nomes de recursos da Amazon (ARNs) para funções do Lambda que representam os operadores de destino.

  • Para funções do Lambda definidas pelo usuário, especifique o ARN da versão atualmente implantada. Se você adicionou funções do Lambda ao grupo usando um ARN do alias, pode usar a solicitação GET para obter todos os operadores e, em seguida, escolher os ARNs que deseja consultar.

  • Para funções do Lambda do sistema, especifique o ARN da função do Lambda correspondente. Para obter mais informações, consulte Funções do Lambda do sistema.

Tipo: matriz de strings

Tamanho mínimo: 1

Comprimento máximo: o número total de operadores iniciados pelo AWS IoT Greengrass no dispositivo principal.

Resposta do JSON

Essa solicitação retorna uma matriz de Workers e uma matriz de InvalidArns.

Workers

Uma lista de objetos de informações de integridade dos operadores especificados.

Tipo: matriz de objetos de informações de integridade

InvalidArns

Uma lista de ARNs de função que são inválidos, incluindo ARNs de função que não têm operadores associados.

Tipo: matriz de strings

Exemplo de resposta

O exemplo de resposta a seguir lista objetos de informações de integridade para determinados operadores.

{ "Workers": [ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073ESAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" } ], "InvalidArns" : [ "some-malformed-arn", "arn:aws:lambda:us-west-2:123456789012:function:some-unknown-function:1" ] }

Esta consulta retorna os seguintes erros:

400 Solicitação inválida

O corpo da solicitação está malformado. Para resolver esse problema, utilize o formato a seguir e reenvie a solicitação:

{"FuncArns":["function-1-arn","function-2-arn"]}
400 A solicitação excede o número máximo de operadores

O número de ARNs especificado na matriz de FuncArns excede o número de operadores.

Informações de integridade dos operadores

Um objeto de informações de integridade contém as seguintes propriedades:

FuncArn

O ARN da função do Lambda do sistema que representa o operador.

Digite: string

WorkerId

A ID do operador. Esta propriedade pode ser útil para depuração. O arquivo runtime.log e os logs da função do Lambda contêm a ID do operador, portanto, essa propriedade pode ser especialmente útil para depurar uma função do Lambda sob demanda que cria várias instâncias.

Digite: string

ProcessId

A ID do processo (PID) do processo de operadores.

Digite: int

WorkerState

O estado do operador.

Digite: string

Os estados possíveis são os seguintes:

Working

Processando uma mensagem.

Waiting

Aguardando uma mensagem. Aplica-se a funções do Lambda de longa duração executadas como um daemon ou processo autônomo.

Starting

Criado, começando.

FailedInitialization

Falha ao inicializar.

Terminated

Parado pelo daemon do Greengrass

NotStarted

Falha ao iniciar, fazendo outra tentativa inicial.

Initialized

Inicializado com sucesso.

Funções do Lambda do sistema

Você pode solicitar informações de integridade às seguintes funções do Lambda do sistema:

GGCloudSpooler

Gerencia a fila de mensagens MQTT que têm AWS IoT Core como origem ou destino.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGCloudSpooler:1

GGConnManager

Encaminha mensagens MQTT entre o núcleo do Greengrass e os dispositivos do cliente.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGConnManager

GGDeviceCertificateManager

Atenta ao AWS IoT em busca de alterações nos endpoints IP do núcleo e gera o certificado do lado do servidor usado pelo GGConnManager para autenticação mútua.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGDeviceCertificateManager

GGIPDetector

Detecção automática de endereço IP que permite aos dispositivos no grupo do Greengrass descobrirem o dispositivo principal do Greengrass. Esse serviço não é aplicável quando você fornece endereços IP manualmente.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGIPDetector:1

GGSecretManager

Gerencia o armazenamento seguro de segredos locais e o acesso por meio de conectores e Lambda definidos pelo usuário.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGSecretManager:1

GGShadowService

Gerencia sombras locais para dispositivos cliente.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGShadowService

GGShadowSyncManager

Sincroniza as sombras locais com a Nuvem AWS para o dispositivo principal e os dispositivos cliente se a propriedade syncShadow do dispositivo estiver definida como true.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGShadowSyncManager

GGStreamManager

Processa fluxos de dados localmente e executa exportações automáticas para a Nuvem AWS.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGStreamManager:1

GGTES

O serviço local de troca de tokens que recupera as credenciais do IAM definidas no perfil do grupo do Greengrass que o código local usa para acessar os serviços da AWS.

Nome de região da Amazon (ARN): arn:aws:lambda:::function:GGTES