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 i flussi di distribuzione di Amazon Data Firehose verso destinazioni come Amazon S3, Amazon Redshift e Amazon Service. OpenSearch Per ulteriori informazioni, consulta What is 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 sottoscrive gli argomenti di kinesisfirehose/message
pubblicazione/sottoscrizione kinesisfirehose/message/binary/#
locali. È possibile specificare altri argomenti, inclusi gli AWS IoT Core MQTT argomenti, quando si distribuisce questo componente.
Nota
Questo componente offre funzionalità simili al connettore Firehose della versione 1. AWS IoT Greengrass Per ulteriori informazioni, consulta il connettore Firehose nella AWS IoT Greengrass V1 Developer Guide.
Argomenti
Versioni
Questo componente ha le seguenti versioni:
-
2.1.x
-
2,0x
Type
Questo componente è un componente Lambda () aws.greengrass.lambda
. Il nucleo 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 sui dispositivi principali di Linux.
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.
-
Python
versione 3.7 installata sul dispositivo principale e aggiunta alla variabile di ambiente. PATH -
Il ruolo del dispositivo Greengrass deve consentire le
firehose:PutRecordBatch
azionifirehose:PutRecord
e, come illustrato nel seguente esempio IAM di policy.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:
region
:account-id
: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 IAM policy 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 componente legacy del router di abbonamento (
aws.greengrass.LegacySubscriptionRouter
) quando si distribuisce questo componente. Questa configurazione specifica l'argomento in cui questo componente pubblica le risposte.Per ulteriori informazioni, consulta Creare distribuzione.
-
Il componente Firehose è supportato per l'esecuzione in un. VPC Per distribuire questo componente in aVPC, è necessario quanto segue.
-
Il componente Firehose deve disporre di una connettività a
firehose.region.amazonaws.com
cui abbia l'VPCendpoint di.com.amazonaws.region.kinesis-firehose
-
Endpoint e porte
Questo componente deve essere in grado di eseguire richieste in uscita verso i seguenti endpoint e porte, oltre agli endpoint e alle porte necessari per le operazioni di base. Per ulteriori informazioni, consulta Consenti il traffico dei dispositivi tramite un proxy o un firewall.
Endpoint | Porta | Richiesto | Descrizione |
---|---|---|---|
|
443 | Sì |
Caricare i dati su Firehose. |
Dipendenze
Quando si distribuisce un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle relative dipendenze. Ciò significa che è necessario soddisfare i requisiti per il 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 di versione semantica che definiscono le versioni dei componenti per ogni dipendenza. È inoltre possibile visualizzare le dipendenze per ogni versione del componente nella console.AWS IoT Greengrass
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
-
Il flusso ARN di distribuzione predefinito di Firehose in cui il componente invia i dati. È possibile sovrascrivere lo stream 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 raggruppamento in batch, specificate.
0
Questo valore può essere al massimo di 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 nuovi record per lo stesso flusso di distribuzione.
Questo valore deve essere almeno 2.000 record.
Impostazione predefinita: 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 si specifica
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 gli argomenti AWS IoT Core o gli MQTT argomenti di pubblicazione/sottoscrizione locali.
Questo oggetto contiene le seguenti informazioni:
0
— Si tratta di un indice di matrice sotto forma di stringa.-
Un oggetto che contiene le seguenti informazioni:
type
-
(Facoltativo) Il tipo di messaggi di pubblicazione/sottoscrizione utilizzato da questo componente per sottoscrivere i messaggi. Seleziona una delle opzioni seguenti:
-
PUB_SUB
: iscriviti ai messaggi di pubblicazione/sottoscrizione locali. Se scegli questa opzione, l'argomento non può contenere caratteri jolly. MQTT Per ulteriori informazioni su come inviare messaggi dal componente personalizzato quando si specifica questa opzione, vederePubblicare/sottoscrivere messaggi locali. -
IOT_CORE
— Iscriviti ai AWS IoT Core MQTT messaggi. Se scegli questa opzione, l'argomento può contenere caratteri MQTT speciali. Per ulteriori informazioni su come inviare messaggi da componenti personalizzati quando si specifica questa opzione, vedereAWS IoT Core MQTTPubblicare/sottoscrivere messaggi.
Impostazione predefinita:
PUB_SUB
-
topic
-
(Facoltativo) L'argomento a cui il componente si iscrive per ricevere messaggi. Se si specifica
IotCore
fortype
, è possibile utilizzare i caratteri MQTT jolly (+
e#
) in questo argomento.
Esempio: aggiornamento tramite fusione della configurazione (modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
Esempio: aggiornamento tramite fusione della configurazione (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 li invia al flusso di consegna di destinazione. Il componente accetta due tipi di dati di input:
-
JSONdati sull'
kinesisfirehose/message
argomento. -
Dati binari nell'argomento
kinesisfirehose/message/binary/#
.
- Argomento predefinito per JSON i dati (pubblicazione locale/sottoscrizione):
kinesisfirehose/message
-
Il messaggio accetta le seguenti proprietà. I messaggi di input devono essere in JSON formato.
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) Il ARN flusso di distribuzione Firehose di destinazione. Specificate 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 specificate 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 (pubblicazione locale/sottoscrizione):
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 inkinesisfirehose/message/binary/request123
, la proprietàid
nell'oggetto di risposta viene impostata surequest123
.Se non desideri associare una richiesta a una risposta, puoi pubblicare i messaggi in
kinesisfirehose/message/binary/
. Assicurati di includere la barra finale ()./
Dati di output
Per impostazione predefinita, questo componente pubblica le risposte come dati di output sul seguente MQTT argomento. È necessario specificare questo argomento come contenuto subject
nella configurazione del componente legacy del router di abbonamento. Per ulteriori informazioni su come sottoscrivere i messaggi relativi a questo argomento nei componenti personalizzati, consultaAWS IoT Core MQTTPubblicare/sottoscrivere messaggi.
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 riprovato, ad esempio un errore di connessione, riprova la pubblicazione nel batch successivo.
File di registro locale
Questo componente utilizza il seguente file di registro.
/logs/aws.greengrass.KinesisFirehose.log
/greengrass/v2
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. Sostituisci
con il percorso della cartella AWS IoT Greengrass principale./greengrass/v2
sudo tail -f
/logs/aws.greengrass.KinesisFirehose.log/greengrass/v2
Licenze
Questo componente include i seguenti software/licenze di terze parti:
-
AWS SDK for Python (Boto3)
/Apache License 2.0 -
botocore
/Apache License 2.0 -
BSDdocutils/Licenza
, Licenza pubblica GNU generale (GPL), licenza Python Software Foundation, dominio pubblico -
s3transfer
/Apache License 2.0 -
urllib3//Licenza
MIT
Questo componente è rilasciato in base al contratto di licenza del software Greengrass Core
Changelog
La tabella seguente descrive le modifiche apportate a ciascuna versione del componente.
Versione |
Modifiche |
---|---|
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 |
|
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
-
Che cos'è Amazon Data Firehose? nella Amazon Data Firehose Developer Guide