Desenvolver componentes do AWS IoT Greengrass - AWS IoT Greengrass

Desenvolver componentes do AWS IoT Greengrass

Você pode desenvolver e testar componentes em seu dispositivo principal do Greengrass. Como resultado, você pode criar e iterar seu software do AWS IoT Greengrass sem interagir com a Nuvem AWS. Ao concluir uma versão do seu componente, você pode carregá-la na nuvem do AWS IoT Greengrass, para que você e sua equipe possam implantar o componente em outros dispositivos da frota. Para obter mais informações sobre como implantar componentes, consulte Implantar componentes AWS IoT Greengrass em dispositivos.

Cada componente é composto por uma fórmula e artefatos.

  • Fórmulas

    Cada componente contém um arquivo de fórmula, que define os metadados dele. A fórmula também especifica os parâmetros de configuração, dependências do componente, o ciclo de vida e a compatibilidade da plataforma. O ciclo de vida do componente define os comandos que instalam, executam e desligam o componente. Para obter mais informações, consulte A referência da fórmula do componente do AWS IoT Greengrass.

    Você pode definir fórmulas no formato JSON ou YAML.

  • Artefatos

    Os componentes podem ter qualquer número de artefatos, que são binários de componentes. Os artefatos podem incluir scripts, código compilado, recursos estáticos e quaisquer outros arquivos que um componente consuma. Os componentes também podem consumir artefatos das dependências deles.

O AWS IoT Greengrass fornece componentes pré-criados que você pode usar em suas aplicações e implantar em seus dispositivos. Por exemplo, você pode usar o componente do gerenciador de fluxos para carregar dados para vários serviços da AWS, ou usar o componente de métricas do CloudWatch para publicar métricas personalizadas no Amazon CloudWatch. Para ter mais informações, consulte AWS-componentes fornecidos.

O AWS IoT Greengrass organiza um índice dos componentes do Greengrass, chamado Catálogo de Software do Greengrass. Este catálogo rastreia os componentes do Greengrass que são desenvolvidos pela comunidade do Greengrass. A partir desse catálogo, você pode baixar, modificar e implantar componentes para criar suas aplicações Greengrass. Para ter mais informações, consulte Componentes da comunidade.

O software AWS IoT Greengrass Core executa componentes como usuário e grupo do sistema, como ggc_user e ggc_group, que você configura no dispositivo principal. Isso significa que os componentes têm as permissões desse usuário do sistema. Se você usar um usuário do sistema sem um diretório inicial, os componentes não poderão usar comandos de execução ou códigos que usem um diretório inicial. Isso significa que você não pode usar o comando pip install some-library --user para instalar pacotes Python, por exemplo. Se você seguiu o tutorial de introdução para configurar seu dispositivo principal, o usuário do sistema não tem um diretório inicial. Para obter mais informações sobre como configurar o usuário e o grupo que executam os componentes, consulte Configurar o usuário que executa os componentes.

nota

O AWS IoT Greengrass usa versões semânticas para componentes. As versões semânticas seguem um sistema de numeração principal.secundária.patch. Por exemplo, a versão 1.0.0 representa a primeira versão principal de um componente. Para mais informações, consulte a especificação de versão semântica.

Ciclo de vida do componente

O ciclo de vida do componente define os estágios que o software AWS IoT Greengrass Core usa para instalar e executar componentes. Cada estágio define um script e outras informações que especificam como o componente se comporta. Por exemplo, quando você instala um componente, o software AWS IoT Greengrass Core executa o script de ciclo de vida Install desse componente. Os componentes nos dispositivos principais têm os seguintes estados de ciclo de vida:

  • NEW: a fórmula e os artefatos do componente são carregados no dispositivo principal, mas o componente não está instalado. Depois que um componente entra nesse estado, ele executa o script de instalação.

  • INSTALLED: o componente está instalado no dispositivo principal. O componente entra nesse estado depois de executar o script de instalação.

  • STARTING: o componente está iniciando no dispositivo principal. O componente entra nesse estado quando executa o script de startup. Se a inicialização for bem-sucedida, o componente entrará no estado RUNNING.

  • RUNNING: o componente está sendo executado no dispositivo principal. O componente entra nesse estado quando executa o script de execução ou quando tem processos ativos em segundo plano a partir do script de startup.

  • FINISHED: o componente foi executado com sucesso e concluiu a execução.

  • STOPPING: o componente está parando. O componente entra nesse estado quando executa o script de encerramento.

  • ERRORED: o componente encontrou um erro. Quando o componente entra nesse estado, ele executa o script de recuperação. Em seguida, o componente é reiniciado para tentar retornar ao uso normal. Se o componente entrar no estado ERRORED três vezes sem uma execução bem-sucedida, o componente se tornará BROKEN.

  • BROKEN: o componente encontrou erros várias vezes e não conseguiu se recuperar. Você deve implantar o componente novamente para corrigi-lo.

Tipos de componentes

O tipo de componente especifica como o software AWS IoT Greengrass Core executa um componente. Os componentes podem ter os tipos a seguir:

  • Núcleo (aws.greengrass.nucleus)

    O núcleo do Greengrass é o componente que fornece a funcionalidade mínima do software AWS IoT Greengrass Core. Para ter mais informações, consulte Núcleo do Greengrass.

  • Plug-in (aws.greengrass.plugin)

    O núcleo do Greengrass executa um componente de plug-in na mesma Máquina Virtual Java (JVM) que o núcleo. O núcleo é reiniciado quando você altera a versão de um componente de plug-in em um dispositivo principal. Para instalar e executar componentes do plug-in, configure o núcleo do Greengrass para ser executado como um serviço do sistema. Para ter mais informações, consulte Configurar o núcleo do Greengrass como um serviço do sistema.

    Vários componentes fornecidos pela AWS são componentes de plug-ins, o que permite que eles interajam diretamente com o núcleo do Greengrass. Esse plug-in usa o mesmo arquivo de log do núcleo do Greengrass. Para ter mais informações, consulte Monitore AWS IoT Greengrass logs.

  • Genérico (aws.greengrass.generic)

    O núcleo do Greengrass executa os scripts de ciclo de vida de um componente genérico, se ele definir um ciclo de vida.

    Esse é o tipo padrão para componentes personalizados.

  • Lambda (aws.greengrass.lambda)

    O núcleo do Greengrass executa um componente de função do Lambda usando o componente inicializador do Lambda.

    Quando você cria um componente a partir de uma função do Lambda, o componente tem esse tipo. Para ter mais informações, consulte Executar funções AWS Lambda..

nota

Não recomendamos especificar o tipo de componente em uma fórmula. O AWS IoT Greengrass define o tipo para você ao criar um componente.