Gerenciar streams de dados no núcleo do AWS IoT Greengrass - 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á.

Gerenciar streams de dados no núcleo do AWS IoT Greengrass

O gerenciador de fluxo AWS IoT Greengrass torna mais fácil e confiável a transferência de dados de IoT de alto volume para a Nuvem AWS. O gerenciador de fluxo processa fluxos de dados localmente e os exporta para a Nuvem AWS automaticamente. Esse atributo se integra a cenários de borda comuns, como inferência de machine learning (ML), em que os dados são processados e analisados localmente antes de serem exportados para a Nuvem AWS ou para os destinos de armazenamento local.

O gerenciador de fluxo simplifica o desenvolvimento de aplicativos. Seus aplicativos para IoT podem usar um mecanismo padronizado para processar fluxos de alto volume e gerenciar políticas de retenção de dados locais em vez de criar uma funcionalidade personalizada do gerenciamento de fluxo. Os aplicativos para IoT podem ler e gravar em fluxos. Eles podem definir políticas para o tipo de armazenamento, tamanho e retenção de dados por estilhaço para controlar como o gerenciador de fluxo processa e exporta fluxos.

O gerenciador de fluxo foi projetado para funcionar em ambientes de conectividade intermitente ou limitada. Você pode definir o uso da largura de banda, o comportamento de tempo limite e como os dados do fluxo são manipulados quando o núcleo é conectado ou desconectado. Para dados críticos, você pode definir prioridades a fim de controlar a ordem em que os fluxos são exportados para a Nuvem AWS.

Você pode configurar exportações automáticas para o Nuvem AWS para processamento e análise adicionais. O gerenciador de fluxo oferece suporte para a exportação para os seguintes destinos Nuvem AWS.

  • Canais em AWS IoT Analytics. O AWS IoT Analytics permite realizar análises avançadas em seus dados para ajudar a tomar decisões de negócios e aprimorar os modelos de machine learning. Para obter mais informações, consulte O que é o AWS IoT Analytics? no Guia do usuário do AWS IoT Analytics.

  • Fluxos no Kinesis Data Streams. O Kinesis Data Streams é comumente usado para agregar dados de alto volume e carregá-los em um data warehouse ou cluster de redução de mapas. Para obter mais informações, consulte O que é o Amazon Kinesis Data Streams? no Guia do desenvolvedor do Amazon Kinesis.

  • Propriedades de ativos em AWS IoT SiteWise. O AWS IoT SiteWisepermite coletar, organizar e analisar dados de equipamentos industriais em escala. Para obter mais informações, consulte O que é o AWS IoT SiteWise? no Guia do usuário do AWS IoT SiteWise.

  • Objetos no Amazon S3. Você pode utilizar o Amazon S3 para armazenar e recuperar grandes volumes de dados. Para obter mais informações, consulte O que é o Amazon S3? no Guia do desenvolvedor do Amazon Simple Storage Service.

Fluxo de trabalho do gerenciamento de streams

Seus aplicativos para IoT interagem com o gerenciador de fluxo pelo SDK AWS IoT Greengrass do Core. Em um fluxo de trabalho simples, uma função do Lambda definida pelo usuário em execução no núcleo do Greengrass consome dados da IoT, como métricas de temperatura e pressão de séries temporais. A função do Lambda pode filtrar ou compactar os dados e chamar o SDK AWS IoT Greengrass do Core para gravar os dados em fluxo no gerenciador de fluxo. O gerenciador de fluxo pode exportar o fluxo para a Nuvem AWS automaticamente, com base nas políticas definidas para o fluxo. As funções do Lambda definidas pelo usuário também podem enviar dados diretamente para bancos de dados locais ou repositórios de armazenamento.

Os aplicativos para IoT podem incluir várias funções do Lambda definidas pelo usuário para leitura e gravação em fluxos. Essas funções locais do Lambda podem ler e gravar fluxos de modo a filtrar, agregar e analisar dados localmente. Isso torna possível responder rapidamente a eventos locais e extrair informações valiosas antes que os dados sejam transferidos do núcleo para destinos locais ou na nuvem.

Um fluxo de trabalho de exemplo é mostrado no diagrama a seguir.

Diagrama do fluxo de trabalho do gerenciador de fluxo.

Para usar o gerenciador de fluxo, comece configurando os parâmetros do gerenciador de fluxo para definir as configurações de runtime em nível de grupo que se aplicam a todos os fluxos no núcleo do Greengrass. Essas configurações personalizáveis permitem controlar como o gerenciador de fluxo armazena, processa e exporta fluxos com base nas necessidades do seu negócios e nas restrições do ambiente. Para obter mais informações, consulte Configurar o gerenciador de fluxo do AWS IoT Greengrass.

Depois de configurar o gerenciador de fluxo, você pode criar e implantar seus aplicativos de IoT. Normalmente, essas são funções do Lambda definidas pelo usuário que usam StreamManagerClient no SDK AWS IoT Greengrass do Core para criar e interagir com fluxos. Durante a criação do fluxo, a função do Lambda define políticas por fluxo, como destinos de exportação, prioridade e persistência. Para obter mais informações, incluindo trechos de código para operações StreamManagerClient, consulte. Usar o StreamManagerClient para trabalhar com streams

Para tutoriais que configuram um fluxo de trabalho simples, consulte Exportar fluxos de dados para a Nuvem AWS (console) ou Exporte fluxos de dados para a Nuvem AWS (CLI).

Requisitos

Os seguintes requisitos são aplicados para usar o gerenciador de fluxo:

  • Você deve usar a v1.10 do software Core AWS IoT Greengrass, com o gerenciador de fluxo habilitado. Para obter mais informações, consulte Configurar o gerenciador de fluxo do AWS IoT Greengrass.

    O gerenciador de fluxo não é compatível com distribuições OpenWrT.

  • O Java 8 Runtime (JDK 8) deve ser instalado no núcleo.

    • Para distribuições com base em Debian (incluindo Raspbian) ou distribuições com base em Ubuntu, execute o comando a seguir:

      sudo apt install openjdk-8-jdk
    • Para distribuições com base em Red Hat (incluindo o Amazon Linux), execute o comando a seguir:

      sudo yum install java-1.8.0-openjdk

      Para obter mais informações, consulte Como fazer download e instalar pacotes OpenJDK pré-compilados na documentação do OpenJDK.

     

  • O gerenciador de fluxo requer um mínimo de 70 MB de RAM além do software básico de núcleo do AWS IoT Greengrass. O requisito de memória total depende da sua carga de trabalho.

     

  • As funções do Lambda definidas pelo usuário devem usar o SDK AWS IoT Greengrass do Core para interagir com o gerenciador de fluxo. O SDK AWS IoT Greengrass do Core está disponível em diversas linguagens, mas somente as versões a seguir oferecem suporte para as operações do gerenciador de fluxo:

    • SDK do Java (v1.4.0 ou posterior)

    • SDK do Python (v1.5.0 ou posterior)

    • SDK do Node.js (v1.6.0 ou posterior)

    Faça download da versão do SDK que corresponde ao runtime da função do Lambda e a inclua no pacote de implantação da função do Lambda.

    nota

    O SDK AWS IoT Greengrass do Core para Python requer o Python 3.7 ou um versões posteriores e tem outras dependências do pacotes. Para obter mais informações, consulte Crie um pacote de implantação da função do Lambda (console) ou Crie um pacote de implantação da função do (CLI).

  • Caso defina destinos de exportação Nuvem AWS para um fluxo, você deverá criar seus destinos de exportação e conceder permissões na função de grupo do Greengrass. Dependendo do destino, outros requisitos também podem ser aplicados. Para obter mais informações, consulte:

    Você é responsável pela manutenção desses recursos da Nuvem AWS.

Segurança de dados

Ao usar o gerenciador de fluxo, esteja ciente das seguintes considerações de segurança.

Segurança de dados locais

O AWS IoT Greengrass não criptografa dados de fluxo em repouso nem em trânsito localmente entre componentes no dispositivo de núcleo.

  • Dados em repouso. Os dados de fluxo são armazenados localmente em um diretório de armazenamento o núcleo do Greengrass. Para a segurança dos dados, o AWS IoT Greengrass depende das permissões do arquivo Unix e da criptografia total de disco, se estiverem habilitadas. Você pode usar o parâmetro STREAM_MANAGER_STORE_ROOT_DIR opcional para especificar o diretório de armazenamento. Se você alterar esse parâmetro posteriormente de modo a usar um diretório de armazenamento diferente, o AWS IoT Greengrass não excluirá o diretório de armazenamento anterior nem seu conteúdo.

     

  • Dados em trânsito localmente. O AWS IoT Greengrass não criptografa dados de fluxo em trânsito local no núcleo entre as fontes de dados, as funções do lambda, o SDK AWS IoT Greengrass do Core e o gerenciador de fluxo.

     

  • Dados em trânsito para a Nuvem AWS. Os fluxos de dados exportados pelo gerenciador de fluxo para a Nuvem AWS usam criptografia de cliente do serviço da AWS padrão com Transport Layer Security (TLS).

Para obter mais informações, consulte Criptografia de dados.

Autenticação de cliente

Os clientes do gerenciador de fluxo usam o SDK AWS IoT Greengrass do Core para se comunicar com o gerenciador de fluxo. Quando a autenticação do cliente está ativada, apenas as funções do Lambda no grupo do Greengrass podem interagir com fluxos no gerenciador de fluxo. Quando a autenticação do cliente está desabilitada, qualquer processo em execução no núcleo do Greengrass (como contêineres do Docker) pode interagir com fluxos no gerenciador de fluxo. Você só deve desabilitar a autenticação se o seu caso de negócios exigir.

Use o parâmetro STREAM_MANAGER_AUTHENTICATE_CLIENT para definir o modo de autenticação do cliente. Você pode configurar esse parâmetro pelo console ou pela API do AWS IoT Greengrass. As alterações entrarão em vigor após a implantação do grupo.

  Habilitado Desabilitado

Valor do parâmetro

true (padrão e recomendado)

false

Clientes permitidos

Funções do Lambda definidas pelo usuário no grupo do Greengrass

Funções do Lambda definidas pelo usuário no grupo do Greengrass

Outros processos em execução no dispositivo de núcleo do Greengrass

Consulte também