Perguntas frequentes sobre o AWS IoT Greengrass

Geral

O AWS IoT Greengrass é um tempo de execução de borda de código aberto da Internet das Coisas (IoT) e serviço em nuvem que ajuda a construir, implantar e gerenciar software de dispositivo. Os clientes usam o AWS IoT Greengrass em seus aplicativos IoT para milhões de dispositivos em residências, fábricas, veículos e empresas. É possível programar seus dispositivos para agir localmente nos dados gerados, fazer previsões com base em modelos de machine learning, filtrar e agregar dados do dispositivo e transmitir apenas as informações necessárias para a cloud.

O AWS IoT Greengrass permite que você crie um software de dispositivo inteligente de forma rápida e fácil. O AWS IoT Greengrass permite processamento local, sistema de mensagens, gerenciamento de dados, inferência de ML e oferece componentes predefinidos para acelerar o desenvolvimento de aplicações. O AWS IoT Greengrass também oferece uma maneira segura de conectar perfeitamente seus dispositivos de borda a qualquer produto da AWS, bem como a serviços de terceiros.

Assim que o desenvolvimento do software estiver concluído, o AWS IoT Greengrass permite gerenciar e operar um software remotamente em seus dispositivos no campo sem a necessidade de uma atualização de firmware. O AWS IoT Greengrass ajuda a manter seus dispositivos atualizados e os torna mais inteligentes com o tempo.

Clique aqui para consultar o Guia de conceitos básicos do AWS IoT Greengrass. Você pode analisar a lista de dispositivos qualificados no AWS IoT Partner Device Catalog.

Consulte a tabela de regiões da AWS para obter as informações mais atualizadas sobre a disponibilidade de regiões do AWS IoT Greengrass.

O AWS IoT Greengrass consiste em um serviço de cloud e duas distribuições de software para dispositivos da IoT: AWS IoT Greengrass Core, AWS IoT Device SDK e o AWS IoT Greengrass SDK. Depois que a distribuição do software é instalada em seu dispositivo, é possível adicionar ou remover recursos, componentes e gerenciar seus aplicativos de dispositivo IoT usando o AWS IoT Greengrass.

O gráfico abaixo descreve os principais componentes. O AWS IoT Greengrass também trabalha com o FreeRTOS. Para obter mais informações sobre o AWS IoT Greengrass e o FreeRTOS, consulte a seção de perguntas frequentes: Como conectar o FreeRTOS e outros dispositivos ao AWS IoT Greengrass.
 

  Objetivo Onde é executado
 
AWS IoT Greengrass Core Fornece serviços locais (computação, sistema de mensagens, estado, segurança) e se comunica localmente com dispositivos que executam o AWS IoT Device SDK Dispositivos baseados em CPU (x86 ou Arm) de 64 bits que executam um sistema operacional de uso geral, como o Linux.
 
AWS IoT Device SDK Permite que os dispositivos interajam localmente com o AWS IoT Greengrass Core Praticamente qualquer dispositivo é compatível com C++, Node.js, Java ou Python 2.7, 3.7 e 3.8.
AWS IoT Greengrass SDK* Permite que funções Lambda interajam com serviços locais dentro de um AWS IoT Greengrass Core Em uma função do Lambda implantada no AWS IoT Greengrass Core

*Necessário apenas para o AWS IoT Greengrass versão 1

O software AWS IoT Greengrass Core é executado em um dispositivo IoT, hub ou gateway para sincronizar e interagir automaticamente com a cloud. O AWS IoT Greengrass Core foi projetado para execução em dispositivos com um processador de uso geral com capacidade suficiente para executar um sistema operacional de uso geral, como o Linux. O AWS IoT Greengrass exige pelo menos 1 GHz de computação (Arm ou x86), 96 MB* de RAM (v2.0 de tempo de execução de borda ou superior), além de recursos adicionais para o sistema operacional desejado, taxa de transferência de mensagens e a execução do AWS Lambda, dependendo do caso de uso. O AWS IoT Greengrass Core pode ser executado em dispositivos que variam de um Raspberry Pi a um dispositivo a nível de servidor.

*Com base em um estudo da AWS que usou o seguinte JDK: a versão do JDK usada para os testes: openjdk versão "1.8.0_275", OpenJDK Runtime Environment (versão 1.8.0_275-8u275-b01-0ubuntu1 até 18.04-b01) e VM do OpenJDK do servidor de 64 bits (versão 25.275-b01, modo misto). O uso da memória pode ser maior utilizando entradas diferentes.

O AWS IoT Greengrass é compatível com funções do Lambda criadas nas seguintes linguagens:

  • Python 2.7, 3.7 e 3.8
  • Node v8.10 e v12.x
  • Java 8 ou superior
  • C
  • C++
  • Qualquer linguagem compatível com importação de bibliotecas em C 

É possível implantar no AWS IoT Greengrass Core qualquer Lambda que use Python 2.7, 3.7 ou 3.8, Node v.8.10 ou v12.x ou Java 8 Lambda Runtime. Os Lambdas que são implantados no AWS IoT Greengrass precisam ser empacotados junto com o AWS IoT Greengrass Core SDK. Além disso, você também pode optar por adicionar o AWS SDK ao seu pacote do Lambda para facilitar a interação com serviços da AWS, como o Amazon DynamoDB.

Obs.: alguns serviços de nuvem usados por seu Lambda (p. ex., DynamoDB) não estarão disponíveis para as funções Lambda quando o AWS IoT Greengrass Core estiver no modo offline e as chamadas de API para esses serviços falharão no modo offline. Além disso, suas funções Lambda precisam usar o namespace adequado para cada AWS IoT Greengrass Core SDK e AWS SDK, caso inclua ambos no mesmo pacote.

Sim, você pode executar contêineres do Docker em um dispositivo AWS IoT Greengrass ou executar o AWS IoT Greengrass em um ambiente de contêiner do Docker.

Você pode implantar, executar e gerenciar contêineres do Docker com o AWS IoT Greengrass. Você pode usar qualquer ferramenta de terceiros para criar imagens do Docker/Open Container Initiative (OCI) e suas imagens do Docker podem ser armazenadas nos registros de contêiner do Docker, como Amazon Elastic Container Registry (Amazon ECR), Docker Hub ou registros confiáveis do Docker (DTRs).

Você pode executar o AWS IoT Greengrass em um contêiner do Docker configurando seu grupo do AWS IoT Greengrass para executar sem a conteinerização do Lambda. Para começar, você pode acessar um arquivo do AWS IoT Greengrass Docker aqui e encontrar aqui a documentação sobre como obter a imagem do AWS IoT Greengrass Docker do Amazon ECR. Também é possível implantar o AWS IoT Greengrass como um snapshot, um pacote de software conteinerizado que pode ser executado em diversas distribuições do Linux. Para começar a usar, você pode acessar o snapshot do AWS IoT Greengrass aqui e começar a usar aqui.

Sim, ao executar o AWS IoT Greengrass sem conteinerização do Greengrass Lambda a nível de grupo em um contêiner do Docker, você poderá executar o AWS IoT Greengrass em Mac OS ou Windows. Saiba mais sobre essa funcionalidade em nossa documentação.

O Service Level Agreement (SLA – Acordo de Nível de Serviço) do AWS IoT Greengrass para gerenciamento de nuvem estipula que você pode ser elegível para um crédito aplicável a uma parte de suas taxas de serviço mensais se o AWS IoT Greengrass não conseguir atingir um percentual mensal de tempo de atividade do sistema de pelo menos 99,9% para o serviço de nuvem do AWS IoT Greengrass.

Para obter detalhes completos sobre todos os termos e condições do SLA, bem como informações sobre como enviar uma reivindicação, consulte a página de detalhes do SLA do AWS IoT Greengrass.

Começando com o AWS IoT Greengrass 2.0, o runtime de borda e vários componentes agora são de código aberto e publicados no GitHub. Para obter mais detalhes, consulte a lista de componentes de código aberto.

Sim. O tempo de execução de borda do código aberto do AWS IoT Greengrass é distribuído nos termos da licença do Apache 2.0. Portanto, ele pode ser modificado para adequação às necessidades específicas de uma aplicação ou projeto sem a necessidade de uma permissão da AWS.

Não. Não há diferença de definição de preço entre as versões. Para obter mais informações sobre preços, consulte a página de preços.

Acesso a recursos locais

Um “recurso local” é um barramento ou periférico fisicamente presente no host do AWS IoT Greengrass, ou um volume de sistema de arquivos no sistema operacional do host do AWS IoT Greengrass. Por exemplo, para se comunicar com dispositivos conectados via Modbus/CANbus, uma função Lambda do AWS IoT Greengrass precisaria acessar a porta serial no dispositivo. Um recurso local é definido no escopo do grupo do AWS IoT Greengrass, e todos os Lambdas no grupo do AWS IoT Greengrass podem usar os recursos locais definidos.

Um recurso local do AWS IoT Greengrass permite que suas funções Lambda interajam de maneira segura com hardware como sensores e atuadores. Por exemplo, sua função Lambda pode ler streams de vídeo a partir da câmera do dispositivo ou enviar comandos e controles ao GPIO.

Segurança

As raízes de confiança de hardware oferecem ambientes de execução confiáveis e protegidos contra adulterações, nos quais um gerador de número randômico verdadeiro pode produzir as chaves privadas usadas para funções de criptografia. Esses “elementos seguros” de hardware são resistentes a adulterações provenientes de malware e estão fisicamente ligados a um determinado dispositivo de IoT, estabelecendo uma sólida raiz de confiança na qual é possível implantar o software com segurança.

Primeiramente, é necessário executar seu software AWS IoT Greengrass Core em um dispositivo de borda com um elemento seguro. Seguindo as instruções do fornecedor do hardware, gere uma chave privada nesse elemento seguro. Em seguida, siga nossa documentação para atualizar as configurações do arquivo config.json a fim de usar a chave privada do elemento seguro.

Para obter uma lista atualizada de hardwares integrados, acesse o AWS Partner Device Catalog.

Os fornecedores de elementos seguros configuraram seus elementos seguros para usar um conjunto de APIs padrão PKCS#11 na integração ao AWS IoT Greengrass. Os fornecedores usam um conjunto de ferramentas de teste para atestar que o hardware deles está corretamente configurado.

Inferência de Machine Learning

Nos dispositivos AWS IoT Greengrass, você pode executar inferência de ML em dados gerados localmente usando modelos otimizados com o Amazon SageMaker Neo. Para preparar seu dispositivo para inferência, você pode seguir as instruções sobre a instalação do ambiente de execução do Neo DLR no seu dispositivo. Para obter mais informações, consulte Installing DLR.

Você pode compilar um modelo no Amazon SageMaker Neo para sua plataforma de hardware de destino e armazená-lo em um bucket do Amazon Simple Storage Service (Amazon S3). Em seguida, você pode configurar o AWS IoT Greengrass para usar o bucket do Simple Storage Service (Amazon S3) e implantar o modelo otimizado do Neo para inferência local no dispositivo.

Você pode trazer seu modelo de ML treinado em outro lugar colocando-o nos formatos .tar.gz e .zip no Simple Storage Service (Amazon S3). Em seguida, informe o URI do Simple Storage Service (Amazon S3) ao AWS IoT Greengrass, que implantará o modelo nos dispositivos de destino.

A inferência de ML do AWS IoT Greengrass está disponível atualmente em todas as regiões nas quais o AWS IoT Greengrass está disponível. Consulte a tabela de regiões da AWS para obter as informações mais atualizadas sobre a disponibilidade de regiões do AWS IoT Greengrass.

Você pode usar a inferência de ML do AWS IoT Greengrass, independentemente de sua localização geográfica, enquanto você tiver acesso a uma dessas regiões da AWS.

Componentes do AWS IoT Greengrass

Os componentes do AWS IoT Greengrass são blocos de construção que permitem a criação fácil de fluxos de trabalho complexos, como inferência de machine learning, processamento local, sistema de mensagens e gerenciamento de dados. O AWS IoT Greengrass também oferece componentes predefinidos, como o Stream Manager, que oferece suporte à exportação de dados para destinos locais e na nuvem. Esses componentes ajudam a acelerar o desenvolvimento de aplicações, assim você não precisa se preocupar em entender os protocolos do dispositivo, gerenciar credenciais ou interagir com APIs externas, e você pode interagir com os produtos da AWS e aplicações de terceiros sem escrever código. Além disso, você também pode criar seus próprios componentes no AWS IoT Greengrass. Todos os componentes são projetados para permitir uma facilidade de utilização, pois podem ser configurados e gerenciados por meio do console do AWS Greengrass. Esses componentes permitem reutilizar a lógica comum de negócios de um dispositivo AWS IoT Greengrass, pois você pode facilmente detectar, importar, configurar e implantar componentes na borda.

Os componentes do AWS IoT Greengrass podem ser adicionados por meio da seção “componentes” para cada grupo no console do AWS IoT Greengrass. Uma vez adicionado, você configura os parâmetros dos componentes do AWS IoT Greegrass e implanta o grupo para adicioná-lo ao seu dispositivo AWS IoT Greengrass Core.

Qualquer cliente do AWS IoT Greengrass pode usar os componentes do AWS IoT Greengrass de dentro do AWS IoT Greengrass Console e pode ser acessado por meio do AWS Management Console.

Os componentes do AWS IoT Greengrass disponíveis estão em nossa documentação.

Adaptadores de protocolo

Como as funções Lambda executadas no AWS IoT Greengrass Core têm acesso a recursos de rede, você pode usar o Lambda para implementar o suporte a qualquer protocolo implementado sobre TCP/IP. Além disso, também é possível aproveitar o acesso a recursos locais do AWS IoT Greengrass para implementar o suporte a protocolos que precisam acessar adaptadores/drivers de hardware.

O AWS IoT Greengrass também fornece um conector do adaptador de protocolo Modbus-RTU, Modbus-TCP e EtherNet/IP que pode ajudar você a conectar dispositivos de borda. Para obter mais informações, consulte a documentação do conector aqui.

É possível usar o conector IoT SiteWise para ingerir dados do dispositivo de servidores OPC UA, o conector Modbus-TCP para ingerir dados do dispositivo de servidores Modbus-TCP e o conector EtherNet/IP para ingerir dados do dispositivo de servidores EtherNet/IP. A exportação de dados para AWS IoT SiteWise é habilitada por padrão e pode usar streams personalizados para exportar dados para AWS IoT Analytics, Amazon Kinesis e Amazon S3. Também pode usar streams personalizados para enviar dados para funções do Lambda e conduzir o processamento local antes de exportar os dados. Ou você pode criar uma implementação personalizada que usa funções do Lambda implantadas localmente para consumir e processar dados do dispositivo e entregá-los a destinos locais ou na cloud.

Atualizações Over the Air (OTA)

Ocasionalmente a AWS publicará versões atualizados do software AWS IoT Greengrass Core para oferecer os seguintes benefícios:

  • Introduzir recursos novos ou aprimorados
  • Correções de erros
  • Melhorias de segurança

Com as atualizações OTA (Over the Air) do AWS IoT Greengrass, os clientes podem obter todos esses benefícios sem precisar baixar e reinstalar manualmente o software AWS IoT Greengrass Core.

Não. Você pode optar por fazer download e instalar as atualizações manualmente ou seguir um processo diferente de implantação de software.

Quando novas versões do AWS IoT Greengrass Core ficarem disponíveis, faremos um anúncio no fórum de desenvolvedores do software AWS IoT AWS Greengrass. O link para esse fórum está disponível aqui.

AWS IoT Device Tester for AWS IoT Greengrass

O AWS IoT Device Tester para AWS IoT Greengrass é uma ferramenta de automação de testes que permite fazer autotestes e qualificar o AWS IoT Greengrass em seus dispositivos baseados em Linux. O AWS IoT Device Tester oferece uma coleção de testes automatizados que permitem que você verifique se os dispositivos são capazes de executar o AWS IoT Greengrass e ser autenticados por e operar em conjunto com os serviços do AWS IoT.

O AWS IoT Device Tester para AWS IoT Greengrass está disponível aqui.

O AWS IoT Device Tester para AWS IoT Greengrass verifica se a combinação de arquitetura da CPU, configuração de kernel Linux e drivers de um dispositivo funciona com o AWS IoT Greengrass testando:

  • Se os pacotes de software necessários foram instalados 
  • A configuração necessária de kernel do kernel Linux que contém o AWS IoT Greengrass (p. ex., kernel configurado para cgroups)
  • Atualizações Over the Air
  • O dispositivo é capaz de se conectar a serviços do AWS IoT e executar funções do AWS Lambda
  • A funcionalidade de acesso a recursos locais
  • A funcionalidade Device Shadow

Use um dos seguintes canais para obter suporte:

Fórum da AWS para o AWS IoT Greengrass

Premium Support

Suporte ao cliente

Se você for um parceiro da AWS, o Programa de Qualificação de Dispositivos da AWS define o processo para que seu dispositivo seja listado no catálogo. Uma visão de alto nível do processo é a seguinte:

  1. Ser aprovado no teste do AWS IoT Device Tester para AWS IoT Greengrass
     
  2. Faça login no Portal da Rede de Parceiros da AWS
     
  3. Faça upload do relatório do AWS IoT Device Tester. Depois que o relatório é verificado pela AWS e outros artefatos relacionados ao dispositivo, como imagem e ficha técnica, são enviados, o dispositivo é listado no AWS Partner Device Catalog.

O AWS IoT Device Tester para AWS IoT Greengrass está disponível em todas as regiões nas quais o AWS IoT Greengrass está disponível.

O AWS IoT Device Tester para AWS IoT Greengrass tem uso gratuito. Entretanto, você será responsável por qualquer custo associado ao uso da AWS como parte dos testes. Uma única execução de testes do AWS IoT Device Tester em um único dispositivo AWS IoT Greengrass custará menos de USD 0,20.

Os sistemas operacionais e as arquiteturas de CPU compatíveis com o AWS IoT Greengrass Core e que foram testados pela AWS em termos de compatibilidade estão listados aqui. Outras variantes do Linux, que não foram validadas pela equipe AWS IoT Greengrass, podem também ser executadas com êxito no AWS IoT Greengrass. Você pode validar a compatibilidade dessas variantes usando o verificador de dependências do IoT Greengrass no GitHub. Como alternativa, é possível executar o IoT Greengrass em “modo de processo”, o que diminui o limite de compatibilidade, mas remove o suporte para contêineres Linux.

Você pode executar o AWS IoT Greengrass Core em um dispositivo que atenda aos requisitos mínimos de hardware e software. Você também pode testar seus dispositivos automaticamente para verificar se eles serão executados de maneira ideal com o AWS IoT Greengrass e outros serviços da AWS usando o AWS IoT Device Tester. Você também pode descobrir e avaliar dispositivos compatíveis com o AWS IoT Greengrass no AWS Partner Device Catalog.

Para garantir que seu dispositivo funcione com o AWS IoT Greengrass Core, teste usando o AWS IoT Device Tester para AWS IoT Greengrass. Faça o download da ferramenta e leia a documentação.

Como conectar o FreeRTOS e outros dispositivos ao AWS IoT Greengrass

Você pode conectar dispositivos localmente ao AWS IoT Greengrass Core usando o FreeRTOS ou o AWS IoT Device SDK. A detecção do AWS IoT Greengrass está disponível no AWS IoT Device SDK por meio de C++, Node.js, Java e Python 2.7, 3.7 e 3.8. Para obter mais informações, consulte o Guia do desenvolvedor do AWS IoT Greengrass. Você pode usar a biblioteca de detecção do AWS IoT Greengrass no código-fonte do FreeRTOS para localizar e conectar-se a um dispositivo AWS IoT Greengrass Core.

A detecção do AWS IoT Greengrass está disponível no AWS IoT Device SDK por meio de C++, Node.js, Java e Python 2.7, 3.7 e 3.8. Para obter mais informações, consulte o Guia do desenvolvedor do AWS IoT Greengrass.

Sim. Os dispositivos FreeRTOS podem conectar-se diretamente à nuvem ou ao AWS IoT Greengrass. O FreeRTOS é executado em endpoints da IoT e é frequentemente responsável pelas ações de “sondagem” e “atuação” em uma topologia de IoT.

O AWS IoT Greengrass é um software que permite a execução segura de recursos locais de computação, sistema de mensagens, armazenamento de dados em cache, sincronização e inferência de machine learning em dispositivos conectados. Com o AWS IoT Greengrass, os dispositivos conectados podem executar funções do AWS Lambda, contêineres do Docker, ou ambos, manter o sincronismo dos dados dos dispositivos e se comunicar com outros dispositivos de forma segura, mesmo quando não estão conectados à Internet. O AWS IoT Greengrass usa o AWS Lambda para garantir que os dispositivos da IoT respondam rapidamente a eventos locais, usem funções Lambda executadas no AWS IoT Greengrass Core para interagir com recursos locais, operem com conexões intermitentes, sejam atualizados com atualizações OTA (over the air) e minimizem o custo da transmissão de dados da IoT para a nuvem.

O FreeRTOS é um sistema operacional de código aberto e em tempo real para microcontroladores que opera na borda e normalmente não oferece suporte a chipsets capazes de executar o AWS IoT Greengrass. Esses dispositivos com microcontroladores são encontrados em diversos endpoints da IoT, como controladores de aptidão física, marca-passos, medidores de consumo elétrico, transmissões automotivas e redes de sensores. Os dispositivos FreeRTOS não podem executar o AWS IoT Greengrass Core, mas podem conectar, enviar e receber mensagens de e para um dispositivo AWS IoT Greengrass Core para processamento local na borda.

Os requisitos de hardware e os sistemas operacionais são diferentes nos dois dispositivos.
 

  FreeRTOS AWS IoT Greengrass
Software Sistema operacional em tempo real executado em um microcontrolador Tempo de execução para dispositivos Linux e SDK para dispositivos com suporte para AWS IoT Greengrass
Requisitos de hardware >64 KB de RAM

>96 MB* de RAM (runtime de borda v2.0 ou superior)

>128 MB de RAM (runtime de borda v1.11 ou inferior)

Categoria Sistemas incorporados, endpoints de IoT Dispositivos de borda, gateways locais
Casos de uso Dispositivos baseados em microcontrolador Sistemas de automação industrial, roteadores sem fio, câmeras de vídeo, gateways

*Com base em um estudo da AWS que usou o seguinte JDK: a versão do JDK usada para os testes: openjdk versão "1.8.0_275", OpenJDK Runtime Environment (versão 1.8.0_275-8u275-b01-0ubuntu1 até 18.04-b01) e VM do OpenJDK do servidor de 64 bits (versão 25.275-b01, modo misto). O uso da memória pode ser maior utilizando entradas diferentes.