View a markdown version of this page

Firehose - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Firehose

Il componente Firehose (aws.greengrass.KinesisFirehose) pubblica i dati tramite flussi di consegna Amazon Data Firehose verso destinazioni, come Amazon S3, Amazon Redshift e Amazon Service. OpenSearch Per ulteriori informazioni, consulta Cos'è Amazon Data Firehose? nella Amazon Data Firehose Developer Guide.

Per pubblicare su un flusso di distribuzione Kinesis con questo componente, pubblica un messaggio su un argomento a cui questo componente è abbonato. Per impostazione predefinita, questo componente è abbonato agli argomenti locali kinesisfirehose/message e kinesisfirehose/message/binary/# locali. publish/subscribe È possibile specificare altri argomenti, inclusi gli argomenti AWS IoT Core MQTT, quando si distribuisce questo componente.

Nota

Questo componente offre funzionalità simili al connettore Firehose in V1. AWS IoT Greengrass Per ulteriori informazioni, vedere Firehose connector nella AWS IoT Greengrass V1 Developer Guide.

Versioni

Questo componente ha le seguenti versioni:

  • 2.1.x

  • 2.0.x

Tipo

Questo componente è un componente Lambda (aws.greengrass.lambda). Il nucleo di Greengrass esegue la funzione Lambda di questo componente utilizzando il componente di avvio Lambda.

Per ulteriori informazioni, consulta Tipi di componenti.

Sistema operativo

Questo componente può essere installato solo su dispositivi Linux core.

Requisiti

Questo componente ha i seguenti requisiti:

  • Il dispositivo principale deve soddisfare i requisiti per eseguire le funzioni Lambda. Se desideri che il dispositivo principale esegua funzioni Lambda containerizzate, il dispositivo deve soddisfare i requisiti per farlo. Per ulteriori informazioni, consulta Requisiti della funzione Lambda.

  • La versione 3.7 di Python è stata installata sul dispositivo principale e aggiunta alla variabile di ambiente PATH.

  • Il ruolo del dispositivo Greengrass deve consentire le firehose:PutRecordBatch azioni firehose:PutRecord and, come mostrato nel seguente esempio di policy IAM.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:us-east-1:123456789012:deliverystream/stream-name" ] } ] }

    È possibile sovrascrivere dinamicamente il flusso di consegna predefinito nel payload del messaggio di input per questo componente. Se l'applicazione utilizza questa funzionalità, la policy IAM deve includere tutti i flussi di destinazione come risorse. Puoi concedere alle risorse un accesso granulare o condizionale (ad esempio, utilizzando uno schema di denominazione con il carattere jolly *).

  • Per ricevere i dati di output da questo componente, è necessario unire il seguente aggiornamento di configurazione per il vecchio componente del router in abbonamento (aws.greengrass.LegacySubscriptionRouter) quando si distribuisce questo componente. Questa configurazione specifica l'argomento in cui questo componente pubblica le risposte.

    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" } } }
    • Sostituisci region con quello Regione AWS che usi.

    • Sostituisci version con la versione della funzione Lambda eseguita da questo componente. Per trovare la versione della funzione Lambda, è necessario visualizzare la ricetta per la versione di questo componente che si desidera distribuire. Apri la pagina dei dettagli di questo componente nella AWS IoT Greengrass console e cerca la coppia chiave-valore della funzione Lambda. Questa coppia chiave-valore contiene il nome e la versione della funzione Lambda.

    Importante

    È necessario aggiornare la versione della funzione Lambda sul router di abbonamento precedente ogni volta che si distribuisce questo componente. Ciò garantisce l'utilizzo della versione della funzione Lambda corretta per la versione del componente da distribuire.

    Per ulteriori informazioni, consulta Creare distribuzione.

  • Il componente Firehose è supportato per l'esecuzione in un VPC. Per distribuire questo componente in un VPC, è necessario quanto segue.

    • Il componente Firehose deve avere una connettività a firehose.region.amazonaws.com cui l'endpoint VPC è di. com.amazonaws.region.kinesis-firehose

Endpoint e porte

Questo componente deve essere in grado di eseguire richieste in uscita ai seguenti endpoint e porte, oltre agli endpoint e alle porte necessari per il funzionamento di base. Per ulteriori informazioni, consulta Consenti il traffico dei dispositivi tramite un proxy o un firewall.

Endpoint Porta Richiesto Description

firehose.region.amazonaws.com

443

Carica i dati su Firehose.

Dipendenze

Quando distribuisci un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle sue dipendenze. Ciò significa che è necessario soddisfare i requisiti del componente e tutte le sue dipendenze per distribuire correttamente il componente. Questa sezione elenca le dipendenze per le versioni rilasciate di questo componente e i vincoli semantici della versione che definiscono le versioni dei componenti per ciascuna dipendenza. È inoltre possibile visualizzare le dipendenze per ciascuna versione del componente nella console. AWS IoT Greengrass Nella pagina dei dettagli del componente, cerca l'elenco delle dipendenze.

2.1.10

La tabella seguente elenca le dipendenze per la versione 2.1.10 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.16.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.9

La tabella seguente elenca le dipendenze per la versione 2.1.9 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.15.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.8

La tabella seguente elenca le dipendenze per la versione 2.1.8 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.14.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.7

La tabella seguente elenca le dipendenze per la versione 2.1.7 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.13.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.6

La tabella seguente elenca le dipendenze per la versione 2.1.6 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.12.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.5

La tabella seguente elenca le dipendenze per la versione 2.1.5 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.11.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.4

La tabella seguente elenca le dipendenze per la versione 2.1.4 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.10.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.3

La tabella seguente elenca le dipendenze per la versione 2.1.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.9.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.2

La tabella seguente elenca le dipendenze per la versione 2.1.2 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.8.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.1

La tabella seguente elenca le dipendenze per la versione 2.1.1 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.7.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.8 - 2.1.0

La tabella seguente elenca le dipendenze per le versioni 2.0.8 e 2.1.0 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.6.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.7

La tabella seguente elenca le dipendenze per la versione 2.0.7 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.5.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.6

La tabella seguente elenca le dipendenze per la versione 2.0.6 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.4.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.5

La tabella seguente elenca le dipendenze per la versione 2.0.5 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.3.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.4

La tabella seguente elenca le dipendenze per la versione 2.0.4 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.2.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.3

La tabella seguente elenca le dipendenze per la versione 2.0.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.3 <2.1.0 Rigidi
Launcher Lambda > = 1.0.0 Rigidi
Runtime Lambda > = 1.0.0 Flessibili
Servizio di scambio di token > = 1.0.0 Rigidi

Per ulteriori informazioni sulle dipendenze dei componenti, consultate il riferimento alla composizione dei componenti.

Configurazione

Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.

Nota

La configurazione predefinita di questo componente include i parametri della funzione Lambda. Ti consigliamo di modificare solo i seguenti parametri per configurare questo componente sui tuoi dispositivi.

lambdaParams

Un oggetto che contiene i parametri per la funzione Lambda di questo componente. Questo oggetto contiene le seguenti informazioni:

EnvironmentVariables

Un oggetto che contiene i parametri della funzione Lambda. Questo oggetto contiene le seguenti informazioni:

DEFAULT_DELIVERY_STREAM_ARN

L'ARN del flusso di consegna predefinito di Firehose in cui il componente invia i dati. È possibile sovrascrivere il flusso di destinazione con la delivery_stream_arn proprietà nel payload del messaggio di input.

Nota

Il ruolo principale del dispositivo deve consentire le azioni richieste su tutti i flussi di consegna di destinazione. Per ulteriori informazioni, consulta Requisiti.

PUBLISH_INTERVAL

(Facoltativo) Il numero massimo di secondi di attesa prima che il componente pubblichi dati in batch su Firehose. Per configurare il componente in modo che pubblichi le metriche man mano che le riceve, vale a dire senza batch, specifica. 0

Questo valore può durare al massimo 900 secondi.

Impostazione predefinita: 10 secondi

DELIVERY_STREAM_QUEUE_SIZE

(Facoltativo) Il numero massimo di record da conservare in memoria prima che il componente rifiuti i nuovi record per lo stesso flusso di consegna.

Questo valore deve essere di almeno 2.000 record.

Predefinito: 5.000 record

containerMode

(Facoltativo) La modalità di containerizzazione per questo componente. Seleziona una delle opzioni seguenti:

  • NoContainer— Il componente non viene eseguito in un ambiente di runtime isolato.

  • GreengrassContainer— Il componente viene eseguito in un ambiente di runtime isolato all'interno del AWS IoT Greengrass contenitore.

Impostazione predefinita: GreengrassContainer

containerParams

(Facoltativo) Un oggetto che contiene i parametri del contenitore per questo componente. Il componente utilizza questi parametri se specificate GreengrassContainer percontainerMode.

Questo oggetto contiene le seguenti informazioni:

memorySize

(Facoltativo) La quantità di memoria (in kilobyte) da allocare al componente.

Il valore predefinito è 64 MB (65.535 KB).

pubsubTopics

(Facoltativo) Un oggetto che contiene gli argomenti a cui il componente si iscrive per ricevere messaggi. È possibile specificare ogni argomento e se il componente sottoscrive argomenti MQTT provenienti da AWS IoT Core o argomenti locali. publish/subscribe

Questo oggetto contiene le seguenti informazioni:

0— Questo è un indice di matrice sotto forma di stringa.

Un oggetto che contiene le seguenti informazioni:

type

(Facoltativo) Il tipo di publish/subscribe messaggistica utilizzato da questo componente per sottoscrivere i messaggi. Seleziona una delle opzioni seguenti:

  • PUB_SUB— Sottoscrivi ai publish/subscribe messaggi locali. Se scegli questa opzione, l'argomento non può contenere caratteri jolly MQTT. Per ulteriori informazioni su come inviare messaggi da un componente personalizzato quando si specifica questa opzione, vedere. Pubblicare/sottoscrivere messaggi locali

  • IOT_CORE— Iscriviti ai messaggi AWS IoT Core MQTT. Se scegli questa opzione, l'argomento può contenere caratteri jolly MQTT. Per ulteriori informazioni su come inviare messaggi da componenti personalizzati quando si specifica questa opzione, vedere. Publish/subscribe AWS IoT Core Messaggi MQTT

Impostazione predefinita: PUB_SUB

topic

(Facoltativo) L'argomento a cui il componente si iscrive per ricevere messaggi. Se si specifica IotCore pertype, è possibile utilizzare i caratteri jolly MQTT (+e#) in questo argomento.

Esempio Esempio: aggiornamento dell'unione delle configurazioni (modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
Esempio Esempio: aggiornamento dell'unione delle configurazioni (nessuna modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }

Dati di input

Questo componente accetta contenuti in streaming sui seguenti argomenti e invia il contenuto al flusso di distribuzione di destinazione. Il componente accetta due tipi di dati di input:

  • Dati JSON nell'argomento kinesisfirehose/message.

  • Dati binari nell'argomento kinesisfirehose/message/binary/#.

Argomento predefinito per i dati JSON (locali publish/subscribe): kinesisfirehose/message

Il messaggio accetta le seguenti proprietà. I messaggi di input devono essere in formato JSON.

request

I dati da inviare al flusso di distribuzione e al flusso di distribuzione di destinazione, se diverso da quello predefinito.

Tipo: object che contiene le seguenti informazioni:

data

I dati da inviare al flusso di distribuzione.

Tipo: string

delivery_stream_arn

(Facoltativo) L'ARN del flusso di consegna Firehose di destinazione. Specifica questa proprietà per sovrascrivere il flusso di consegna predefinito.

Tipo: string

id

Un ID arbitrario della richiesta. Utilizzate questa proprietà per mappare una richiesta di input a una risposta di output. Quando si specifica questa proprietà, il componente imposta la id proprietà nell'oggetto di risposta su questo valore.

Tipo: string

Esempio Input di esempio
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }
Argomento predefinito per i dati binari (locali publish/subscribe): kinesisfirehose/message/binary/#

Utilizzare questo argomento per inviare un messaggio contenente dati binari. Il componente non analizza i dati binari. Il componente trasmette i dati così come sono.

Per associare la richiesta di input a una risposta di output, sostituisci il carattere jolly # nell'argomento del messaggio con un ID richiesta arbitrario. Ad esempio, se pubblichi un messaggio in kinesisfirehose/message/binary/request123, la proprietà id nell'oggetto di risposta viene impostata su request123.

Se non desideri associare una richiesta a una risposta, puoi pubblicare i messaggi in kinesisfirehose/message/binary/. Assicuratevi di includere la barra finale (). /

Dati di output

Per impostazione predefinita, questo componente pubblica le risposte come dati di output sul seguente argomento MQTT. È necessario specificare questo argomento come subject nella configurazione per il componente router in abbonamento legacy. Per ulteriori informazioni su come sottoscrivere i messaggi su questo argomento nei componenti personalizzati, vederePublish/subscribe AWS IoT Core Messaggi MQTT.

Argomento predefinito (AWS IoT Core MQTT): kinesisfirehose/message/status

Esempio Output di esempio

La risposta contiene lo stato di ogni record di dati inviati nel batch.

{ "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 il componente rileva un errore che può essere ripetuto, ad esempio un errore di connessione, riprova la pubblicazione nel batch successivo.

File di registro locale

Questo componente utilizza il seguente file di registro.

/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
Per visualizzare i log di questo componente
  • Esegui il seguente comando sul dispositivo principale per visualizzare il file di registro di questo componente in tempo reale. Sostituiscilo /greengrass/v2 con il percorso della cartella AWS IoT Greengrass principale.

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

Licenze

Questo componente include le seguenti terze parti software/licensing:

Questo componente è rilasciato in base al contratto di licenza software Greengrass Core.

Changelog

La tabella seguente descrive le modifiche in ciascuna versione del componente.

Versione

Modifiche

2.1.10

Versione aggiornata per la versione 2.15.0 di Greengrass nucleus.

2.1.9

Versione aggiornata per la versione 2.14.0 di Greengrass nucleus.

2.1.8

Versione aggiornata per la versione 2.13.0 di Greengrass nucleus.

2.1.7

Versione aggiornata per la versione 2.12.0 di Greengrass nucleus.

2.1.6

Versione aggiornata per la versione 2.11.0 di Greengrass nucleus.

2.1.5

Versione aggiornata per la versione 2.10.0 di Greengrass nucleus.

2.1.4

Versione aggiornata per la versione 2.9.0 di Greengrass nucleus.

2.1.3

Versione aggiornata per la versione 2.8.0 di Greengrass nucleus.

2.1.2

Versione aggiornata per la versione 2.7.0 di Greengrass nucleus.

2.1.1

Versione aggiornata per la versione 2.6.0 di Greengrass nucleus.

2.1.0

Nuove funzionalità

2.0.8

Versione aggiornata per la versione 2.5.0 di Greengrass nucleus.

2.0.7

Versione aggiornata per la versione 2.4.0 di Greengrass nucleus.

2.0.6

Versione aggiornata per la versione 2.3.0 di Greengrass nucleus.

2.0.5

Versione aggiornata per la versione 2.2.0 di Greengrass nucleus.

2.0.4

Versione aggiornata per la versione 2.1.0 di Greengrass nucleus.

2.0.3

Versione iniziale.

Consulta anche