Gerenciador de fluxos - AWS IoT Greengrass

Gerenciador de fluxos

O componente Gerenciador de fluxos (aws.greengrass.StreamManager) permite que você processe os fluxos de dados que serão transferidos dos dispositivos principais do Greengrass para a Nuvem AWS.

Para obter mais informações sobre como configurar e usar o Gerenciador de fluxos em componentes personalizados, consulte Gerenciar fluxos de dados no nos dispositivos principais do Greengrass.

Versões

Esse componente tem as seguintes versões:

  • 2.1.x

  • 2.0.x

nota

Se você usa o Gerenciador de fluxos para exportar dados para a nuvem, não pode atualizar a versão 2.0.7 desse componente para uma versão entre 2.0.8 e 2.0.11. Se você está implantando o Gerenciador de fluxos pela primeira vez, é altamente recomendável implantar a versão mais recente desse componente.

Tipo

Esse é um componente genérico (aws.greengrass.generic). O núcleo do Greengrass executa os scripts do ciclo de vida do componente.

Para ter mais informações, consulte Tipos de componentes.

Sistema operacional

É possível instalar esse componente em dispositivos principais que têm os seguintes sistemas operacionais:

  • Linux

  • Windows

Requisitos

Esse componente tem os seguintes requisitos:

  • O perfil de troca de tokens deve permitir acesso aos destinos da Nuvem AWS que você usa com o Gerenciador de fluxos. Para obter mais informações, consulte:

  • O componente Gerenciador de fluxos é compatível para execução em uma VPC. Para implantá-lo em uma VPC, o procedimento a seguir é necessário.

    • O componente Gerenciador de fluxos deve ter conectividade com o serviço da AWS em que você publica os dados.

      • Amazon S3: com.amazonaws.region.s3

      • Amazon Kinesis Data Streams: com.amazonaws.region.kinesis-streams

      • AWS IoT SiteWise: com.amazonaws.region.iotsitewise.data

    • Se você publica dados no Amazon S3 na região us-east-1, por padrão, esse componente tenta usar o endpoint global do S3. No entanto, esse endpoint não está disponível por meio do endpoint de interface da VPC do Amazon S3. Para obter mais informações, consulte Restrições e limitações do AWS PrivateLink para Amazon S3. Para resolver isso, você pode escolher entre as opções a seguir.

      • Configure o componente Gerenciador de fluxos para usar o endpoint regional do S3 na região us-east-1 definindo -Daws.s3UseUsEast1RegionalEndpoint=regional em JVM_ARGS.

      • Crie um endpoint da VPC do gateway do Amazon S3 em vez de um endpoint da VPC de interface do Amazon S3. Os endpoints do gateway do S3 oferecem suporte para acesso ao endpoint global do S3. Para obter mais informações, consulte Criar um endpoint do gateway.

Endpoints e portas

Esse componente precisa ser capaz de realizar solicitações de saída para os endpoints e portas a seguir, além dos endpoints e portas necessários para a operação básica. Para ter mais informações, consulte Permitir o tráfego de dispositivos por meio de um proxy ou firewall.

Endpoint Port (Porta) Obrigatório Descrição

iotanalytics.region.amazonaws.com

443 Não

Obrigatório se você publica dados no AWS IoT Analytics.

kinesis.region.amazonaws.com

443 Não

Obrigatório se você publica dados no Firehose.

data.iotsitewise.region.amazonaws.com

443 Não

Obrigatório se você publica dados no AWS IoT SiteWise.

*.s3.amazonaws.com

443 Não

Obrigatório se você publica dados em buckets do S3.

Você pode substituir * pelo nome de cada bucket em que você publica dados.

Dependências

Quando você implanta um componente, o AWS IoT Greengrass também implanta versões compatíveis das dependências dele. Isso significa que é preciso atender aos requisitos do componente e de todas as dependências dele para implantá-lo com êxito. Nesta seção, há uma lista de todas as dependências das versões lançadas desse componente e das restrições de versão semântica que definem as versões do componente para cada dependência. Também é possível visualizar as dependências de cada versão do componente no console do AWS IoT Greengrass. Na página de detalhes do componente, procure a lista de dependências.

2.1.13

A tabela a seguir lista as dependências das versões 2.1.11 a 2.1.10 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.14.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.1.11 - 2.1.12

A tabela a seguir lista as dependências das versões 2.1.11 a 2.1.10 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.13.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.1.9 – 2.1.10

A tabela a seguir lista as dependências das versões 2.1.9 a 2.1.10 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.12.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.1.5 – 2.1.8

A tabela a seguir lista as dependências das versões 2.1.5 a 2.1.8 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.11.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.1.2 – 2.1.4

A tabela a seguir lista as dependências das versões 2.1.2 a 2.1.4 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.10.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.1.1

A tabela a seguir lista as dependências da versão 2.1.1 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.9.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.1.0

A tabela a seguir lista as dependências da versão 2.1.0 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.8.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.15

A tabela a seguir lista as dependências da versão 2.0.15 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.7.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.13 and 2.0.14

A tabela a seguir lista as dependências das versões 2.0.13 e 2.0.14 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.6.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.11 and 2.0.12

A tabela a seguir lista as dependências das versões 2.0.11 e 2.0.12 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.5.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.10

A tabela a seguir lista as dependências da versão 2.0.10 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.4.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.9

A tabela a seguir lista as dependências da versão 2.0.9 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.3.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.8

A tabela a seguir lista as dependências da versão 2.0.8 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.2.0 Flexível
Token Exchange Service >=0.0.0 Rígido
2.0.7

A tabela a seguir lista as dependências da versão 2.0.7 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.3 <2.1.0 Flexível
Token Exchange Service >=0.0.0 Rígido

Para obter mais informações sobre dependências de componente, consulte a referência de fórmulas de componente.

Configuração

Esse componente fornece os parâmetros de configuração a seguir, que podem ser personalizados quando você o implanta.

STREAM_MANAGER_STORE_ROOT_DIR

(Opcional) O caminho absoluto do diretório local usado para armazenar fluxos. Esse valor deve começar com uma barra (por exemplo, /data).

Você deve especificar uma pasta existente, e o usuário do sistema que executa o componente Gerenciador de fluxos deve ter permissões para ler e gravar nessa pasta. Por exemplo, você pode executar os comandos a seguir para criar e configurar uma pasta, /var/greengrass/streams, que você especifica como a pasta raiz do Gerenciador de fluxos. Esses comandos permitem que o usuário padrão do sistema, ggc_user, leia e grave nessa pasta.

sudo mkdir /var/greengrass/streams sudo chown ggc_user /var/greengrass/streams sudo chmod 700 /var/greengrass/streams

Padrão: /greengrass/v2/work/aws.greengrass.StreamManager

STREAM_MANAGER_SERVER_PORT

(Opcional) O número da porta local usado para comunicação com o Gerenciador de fluxos.

Você pode especificar 0 para usar uma porta disponível aleatória.

Padrão: 8088

STREAM_MANAGER_AUTHENTICATE_CLIENT

(Opcional) Você pode tornar obrigatória a autenticação dos clientes para que eles possam interagir com o Gerenciador de fluxos. O Stream Manager SDK controla a interação entre os clientes e o Gerenciador de fluxos. Esse parâmetro determina quais clientes podem chamar o Stream Manager SDK para trabalhar com fluxos. Para obter mais informações, consulte Autenticação do cliente do Gerenciador de fluxos.

Se você especificar true, o Stream Manager SDK permitirá somente componentes do Greengrass como clientes.

Se você especificar false, o Stream Manager SDK permitirá que todos os processos no dispositivo principal sejam clientes.

Padrão: true

STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH

(Opcional) A média de largura de banda máxima (em quilobits por segundo) que o Gerenciador de fluxos pode usar para exportar dados.

Padrão: sem limite

STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE

(Opcional) O número máximo de tópicos ativos que o Gerenciador de fluxos pode usar para exportar dados.

O tamanho ideal depende do hardware, do volume do fluxo e do número planejado de fluxos de exportação. Se a velocidade de exportação for lenta, você poderá ajustar essa configuração para encontrar o tamanho ideal para seu hardware e caso de negócios. A CPU e a memória do hardware do dispositivo de núcleo são fatores limitantes. Para iniciar, você pode tentar definir esse valor igual ao número de núcleos do processador no dispositivo.

Tenha cuidado para não definir um tamanho superior ao que o seu hardware pode suportar. Cada fluxo consome recursos de hardware, portanto tente limitar o número de fluxos de exportação em dispositivos restritos.

Padrão: 5 tópicos

STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES

(Opcional) O tamanho mínimo (em bytes) de uma parte de um upload de várias partes para o Amazon S3. O gerenciador de fluxo usa essa configuração e o tamanho do arquivo de entrada para determinar como agrupar dados em lote em uma solicitação PUT de várias partes.

nota

O Gerenciador de fluxos usa a propriedade sizeThresholdForMultipartUploadBytes de fluxos para determinar se deve exportar para o Amazon S3 como um upload de uma ou de várias partes. Os componentes do AWS IoT Greengrass podem definir esse limite quando criam um fluxo que exporta para o Amazon S3.

Padrão: 5242880 (5 MB) Esse também é o valor mínimo.

LOG_LEVEL

(Opcional) O nível de registro em log do componente. Escolha entre os seguintes níveis de log, listados aqui em ordem de nível:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

Padrão: INFO

JVM_ARGS

(Opcional) Argumentos personalizados da Java Virtual Machine que serão passados para o Gerenciador de fluxos na inicialização. Separe vários argumentos com espaços.

Só use esse parâmetro quando precisar substituir as configurações padrão usadas pela JVM. Por exemplo, talvez seja necessário aumentar o tamanho do heap padrão caso você planeje exportar um grande número de fluxos.

exemplo Exemplo: atualização da mesclagem de configuração

O exemplo de configuração a seguir especifica o uso de uma porta não padrão.

{ "STREAM_MANAGER_SERVER_PORT": "18088" }

Arquivo de log local

Esse componente usa o arquivo de log abaixo.

Linux
/greengrass/v2/logs/aws.greengrass.StreamManager.log
Windows
C:\greengrass\v2\logs\aws.greengrass.StreamManager.log
Para exibir os logs desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. Substitua /greengrass/v2 ou C:\greengrass\v2 pelo caminho para a pasta raiz do AWS IoT Greengrass.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.StreamManager.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.StreamManager.log -Tail 10 -Wait

Changelog

A tabela a seguir descreve as alterações em cada versão do componente.

Version (Versão)

Alterações

2.1.13

Correções de bugs e melhorias

Oferece suporte a endpoints do FIPS para o AWS IoT SiteWise

2.1.12

Correções de bugs e melhorias

Atualiza a ordem em que as credenciais são usadas para que as credenciais do Greengrass sejam preferidas no caso de solicitações de serviço da AWS.

2.1.11

Versão atualizada para o núcleo do Greengrass 2.12.0.

2.1.10

Correções de bugs e melhorias

Corrige um problema em que a configuração do proxy HTTPS não confia na cadeia de certificados da autoridade de certificação (CA) do Greengrass.

2.1.9

Versão atualizada para o núcleo do Greengrass 2.11.0.

2.1.8

Correções de bugs e melhorias

Corrige um problema em que o Gerenciador de fluxos repete infinitamente as exportações do SiteWise e apresenta uma falha com InvalidRequestException.

2.1.7

Correções de bugs e melhorias

Corrige um problema em que o Gerenciador de fluxos não consegue ler a configuração do proxy corretamente.

2.1.6

Correções de bugs e melhorias

Corrige um problema que pode causar uma falha na inicialização em determinados processadores ARMv8, incluindo o Jetson Nano.

2.1.5

Versão atualizada para o núcleo do Greengrass 2.10.0.

2.1.4

Correções de bugs e melhorias
  • Corrige um problema em que as entradas do mesmo ativo de propriedade com o mesmo carimbo de data/hora em um único lote retornavam ConflictingOperationException da API SiteWise, o que fazia com que o Gerenciador de fluxos repetisse a ação continuamente.

  • Atualiza o tempo limite de conexão padrão de três segundos para um minuto.

2.1.3

Correções de bugs e melhorias

Corrige um problema de inicialização no sistema operacional Windows quando executado como usuário SYSTEM.

2.1.2

Correções de bugs e melhorias
  • Corrige um problema no sistema operacional Windows que usa um idioma diferente do inglês.

  • Versão atualizada para o núcleo do Greengrass 2.9.0.

2.1.1

Versão atualizada para o núcleo do Greengrass 2.8.0.

2.1.0

Novos atributos

2.0.15

Versão atualizada para o núcleo do Greengrass 2.6.0.

2.0.14

Essa versão contém correções de bugs e melhorias.

2.0.13

Versão atualizada para o núcleo do Greengrass 2.5.0.

2.0.12
Correções de bugs e melhorias

Corrige um problema que impedia atualizações da versão 2.0.7 do componente Gerenciador de fluxos para uma versão entre 2.0.8 e 2.0.11. Se você usa o Gerenciador de fluxos para exportar dados para a nuvem, agora pode atualizar para a versão 2.0.12.

2.0.11

Versão atualizada para o núcleo do Greengrass 2.4.0.

2.0.10

Versão atualizada para o núcleo do Greengrass 2.3.0.

2.0.9

Versão atualizada para o núcleo do Greengrass 2.2.0.

2.0.8

Versão atualizada para o núcleo do Greengrass 2.1.0.

2.0.7

Versão inicial.