Firehose - AWS IoT Greengrass

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

Firehose

O componente Firehose (aws.greengrass.KinesisFirehose) publica dados por meio de fluxos de entrega do Amazon Data Firehose para destinos, como Amazon S3, Amazon Redshift e Amazon Service. OpenSearch Para obter mais informações, consulte O que é o Amazon Data Firehose? no Guia do desenvolvedor do Amazon Data Firehose.

Para publicar em um stream de entrega do Kinesis com esse componente, publique uma mensagem em um tópico em que esse componente se inscreva. Por padrão, esse componente se inscreve nos tópicos de kinesisfirehose/message publicação/assinatura kinesisfirehose/message/binary/# locais. Você pode especificar outros tópicos, incluindo tópicos do AWS IoT Core MQTT, ao implantar esse componente.

nota

Esse componente fornece funcionalidade semelhante ao conector Firehose na AWS IoT Greengrass V1. Para obter mais informações, consulte o conector Firehose no Guia do desenvolvedor AWS IoT Greengrass V1.

Versões

Esse componente tem as seguintes versões:

  • 2.1.x

  • 2.0.x

Tipo

Esse componente é um componente Lambda () aws.greengrass.lambda. O núcleo do Greengrass executa a função Lambda desse componente usando o componente lançador Lambda.

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

Sistema operacional

Esse componente pode ser instalado somente nos dispositivos principais do Linux.

Requisitos

Esse componente tem os seguintes requisitos:

  • Seu dispositivo principal deve atender aos requisitos para executar as funções do Lambda. Se você quiser que o dispositivo principal execute funções Lambda em contêineres, o dispositivo deve atender aos requisitos para fazer isso. Para ter mais informações, consulte Requisitos da função do Lambda.

  • Python versão 3.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

  • A função de dispositivo do Greengrass deve permitir as firehose:PutRecordBatch ações firehose:PutRecord e, conforme mostrado no exemplo de política do IAM a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/stream-name" ] } ] }

    Você pode substituir dinamicamente o fluxo de entrega padrão na carga da mensagem de entrada desse componente. Se seu aplicativo usa esse recurso, a política do IAM deve incluir todos os fluxos de destino como recursos. Você pode conceder acesso granular ou condicional aos recursos (por exemplo, usando um esquema de nomeação * curinga).

  • Para receber dados de saída desse componente, você deve mesclar a seguinte atualização de configuração para o componente antigo do roteador de assinatura (aws.greengrass.LegacySubscriptionRouter) ao implantar esse componente. Essa configuração especifica o tópico em que esse componente publica respostas.

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "component:aws.greengrass.KinesisFirehose", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    • Substitua a região pela Região da AWS que você usa.

    • Substitua a versão pela versão da função Lambda que esse componente executa. Para encontrar a versão da função Lambda, você deve visualizar a receita da versão desse componente que você deseja implantar. Abra a página de detalhes desse componente no AWS IoT Greengrass console e procure o par de valores-chave da função Lambda. Esse par de valores-chave contém o nome e a versão da função Lambda.

    Importante

    Você deve atualizar a versão da função Lambda no roteador de assinatura legado sempre que implantar esse componente. Isso garante que você use a versão correta da função Lambda para a versão do componente que você implanta.

    Para ter mais informações, consulte Criar implantações.

  • O componente Firehose pode ser executado em uma VPC. Para implantar esse componente em uma VPC, é necessário o seguinte.

    • O componente Firehose deve ter conectividade com a firehose.region.amazonaws.com qual tenha o VPC endpoint de. com.amazonaws.region.kinesis-firehose

Endpoints e portas

Esse componente deve ser capaz de realizar solicitações de saída para os seguintes endpoints e portas, 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 Porta Obrigatório Descrição

firehose.region.amazonaws.com

443 Sim

Faça upload de dados para o Firehose.

Dependências

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

2.1.7

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.13.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.1.6

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.12.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.1.5

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.11.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.1.4

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.10.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.1.3

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.9.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.1.2

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.8.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.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 Greengrass >=2.0.0 <2.7.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.8 - 2.1.0

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.6.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.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 Greengrass >=2.0.0 <2.5.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.6

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.4.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.5

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.3.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.4

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.2.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.3

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.3 <2.1.0 Rígido
Lançador Lambda >=1.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) >=1.0.0 Flexível
Serviço de troca de tokens >=1.0.0 Rígido

Para obter mais informações sobre dependências de componentes, consulte a referência da receita do componente.

Configuração

Esse componente fornece os seguintes parâmetros de configuração que você pode personalizar ao implantar o componente.

nota

A configuração padrão desse componente inclui parâmetros da função Lambda. Recomendamos que você edite somente os parâmetros a seguir para configurar esse componente em seus dispositivos.

lambdaParams

Um objeto que contém os parâmetros da função Lambda desse componente. Esse objeto contém as seguintes informações:

EnvironmentVariables

Um objeto que contém os parâmetros da função Lambda. Esse objeto contém as seguintes informações:

DEFAULT_DELIVERY_STREAM_ARN

O ARN do stream de entrega padrão do Firehose para o qual o componente envia dados. Você pode substituir o fluxo de destino pela delivery_stream_arn propriedade na carga da mensagem de entrada.

nota

A função principal do dispositivo deve permitir as ações necessárias em todos os fluxos de entrega de destino. Para ter mais informações, consulte Requisitos.

PUBLISH_INTERVAL

(Opcional) O número máximo de segundos de espera antes que o componente publique os dados em lote no Firehose. Para configurar o componente para publicar métricas à medida que as recebe, ou seja, sem agrupamento em lotes, especifique0.

Esse valor pode ser de no máximo 900 segundos.

Padrão: 10 segundos

DELIVERY_STREAM_QUEUE_SIZE

(Opcional) O número máximo de registros a serem retidos na memória antes que o componente rejeite novos registros para o mesmo fluxo de entrega.

Esse valor deve ter pelo menos 2.000 registros.

Padrão: 5.000 registros

containerMode

(Opcional) O modo de conteinerização desse componente. Escolha uma das seguintes opções:

  • NoContainer— O componente não é executado em um ambiente de execução isolado.

  • GreengrassContainer— O componente é executado em um ambiente de execução isolado dentro do AWS IoT Greengrass contêiner.

Padrão: GreengrassContainer

containerParams

(Opcional) Um objeto que contém os parâmetros do contêiner desse componente. O componente usa esses parâmetros se você especificar GreengrassContainer paracontainerMode.

Esse objeto contém as seguintes informações:

memorySize

(Opcional) A quantidade de memória (em kilobytes) a ser alocada para o componente.

O padrão é 64 MB (65.535 KB).

pubsubTopics

(Opcional) Um objeto que contém os tópicos em que o componente se inscreve para receber mensagens. Você pode especificar cada tópico e se o componente se inscreve nos tópicos do MQTT AWS IoT Core ou nos tópicos locais de publicação/assinatura.

Esse objeto contém as seguintes informações:

0— Este é um índice de matriz como uma string.

Um objeto que contém as seguintes informações:

type

(Opcional) O tipo de mensagem de publicação/assinatura que esse componente usa para assinar mensagens. Escolha uma das seguintes opções:

  • PUB_SUB – Assine mensagens locais de publicar/assinar. Se você escolher essa opção, o tópico não poderá conter curingas MQTT. Para obter mais informações sobre como enviar mensagens do componente personalizado ao especificar essa opção, consultePublique/assine mensagens locais.

  • IOT_CORE— Assine as mensagens do AWS IoT Core MQTT. Se você escolher essa opção, o tópico poderá conter curingas do MQTT. Para obter mais informações sobre como enviar mensagens de componentes personalizados ao especificar essa opção, consultePublique/assine mensagens MQTT AWS IoT Core.

Padrão: PUB_SUB

topic

(Opcional) O tópico no qual o componente se inscreve para receber mensagens. Se você especificar IotCore paratype, poderá usar curingas MQTT (+e#) neste tópico.

exemplo Exemplo: atualização da mesclagem de configuração (modo contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
exemplo Exemplo: atualização de mesclagem de configuração (sem modo de contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }

Dados de entrada

Esse componente aceita conteúdo de stream nos tópicos a seguir e envia o conteúdo para o stream de entrega de destino. O componente aceita dois tipos de dados de entrada:

  • Dados JSON no tópico kinesisfirehose/message.

  • Dados binários no tópico kinesisfirehose/message/binary/#.

Tópico padrão para dados JSON (publicação/assinatura local): kinesisfirehose/message

A mensagem aceita as seguintes propriedades. As mensagens de entrada devem estar no formato JSON.

request

Os dados a serem enviados para o fluxo de entrega e o fluxo de entrega de destino, se diferentes do fluxo padrão.

Tipo: object que contém as seguintes informações:

data

Os dados a serem enviados para o fluxo de entrega.

Tipo: string

delivery_stream_arn

(Opcional) O ARN do stream de entrega do Firehose de destino. Especifique essa propriedade para substituir o fluxo de entrega padrão.

Tipo: string

id

Um ID arbitrário para a solicitação. Use essa propriedade para mapear uma solicitação de entrada para uma resposta de saída. Quando você especifica essa propriedade, o componente define a id propriedade no objeto de resposta com esse valor.

Tipo: string

exemplo Exemplo de entrada
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }
Tópico padrão para dados binários (publicação/assinatura local): kinesisfirehose/message/binary/#

Use esse tópico para enviar uma mensagem que contenha dados binários. O componente não analisa dados binários. O componente transmite os dados como estão.

Para mapear a solicitação de entrada para uma resposta de saída, substitua o curinga # na mensagem do tópico por um ID de solicitação arbitrário. Por exemplo, se você publicar uma mensagem no kinesisfirehose/message/binary/request123, a propriedade id no objeto de resposta será definida como request123.

Se você não deseja mapear uma solicitação para uma resposta, é possível publicar suas mensagens em kinesisfirehose/message/binary/. Certifique-se de incluir a barra final ()/.

Dados de saída

Por padrão, esse componente publica respostas como dados de saída no seguinte tópico do MQTT. Você deve especificar esse tópico conforme a subject configuração do componente antigo do roteador de assinatura. Para obter mais informações sobre como assinar mensagens sobre esse tópico em seus componentes personalizados, consultePublique/assine mensagens MQTT AWS IoT Core.

Tópico padrão (AWS IoT Core MQTT): kinesisfirehose/message/status

exemplo Exemplo de saída

A resposta contém o status de cada registro de dados enviado no lote.

{ "response": [ { "ErrorCode": "error", "ErrorMessage": "test error", "id": "request123", "status": "fail" }, { "firehose_record_id": "xyz2", "id": "request456", "status": "success" }, { "firehose_record_id": "xyz3", "id": "request890", "status": "success" } ] }
nota

Se o componente detectar um erro que possa ser repetido, como um erro de conexão, ele tentará publicar novamente no próximo lote.

Arquivo de log local

Esse componente usa o seguinte arquivo de log.

/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
Para ver os registros desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. /greengrass/v2Substitua pelo caminho para a pasta AWS IoT Greengrass raiz.

    sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log

Licenças

Esse componente inclui o seguinte software/licenciamento de terceiros:

Esse componente é lançado de acordo com o Contrato de Licença de Software Principal do Greengrass.

Changelog

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

Version (Versão)

Alterações

2.1.7

Versão atualizada para a versão 2.12.0 do Greengrass nucleus.

2.1.6

Versão atualizada para a versão 2.11.0 do Greengrass nucleus.

2.1.5

Versão atualizada para a versão 2.10.0 do Greengrass nucleus.

2.1.4

Versão atualizada para a versão 2.9.0 do Greengrass nucleus.

2.1.3

Versão atualizada para a versão 2.8.0 do Greengrass nucleus.

2.1.2

Versão atualizada para a versão 2.7.0 do Greengrass nucleus.

2.1.1

Versão atualizada para a versão 2.6.0 do Greengrass nucleus.

2.1.0

Novos atributos

2.0.8

Versão atualizada para a versão 2.5.0 do Greengrass nucleus.

2.0.7

Versão atualizada para a versão 2.4.0 do Greengrass nucleus.

2.0.6

Versão atualizada para a versão 2.3.0 do Greengrass nucleus.

2.0.5

Versão atualizada para a versão 2.2.0 do Greengrass nucleus.

2.0.4

Versão atualizada para a versão 2.1.0 do Greengrass nucleus.

2.0.3

Versão inicial.

Consulte também