Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Firehose
El componente Firehose (aws.greengrass.KinesisFirehose
) publica datos a través de las transmisiones de entrega de Amazon Data Firehose a destinos, como Amazon S3, Amazon Redshift y Amazon Service. OpenSearch Para obtener más información, consulte ¿Qué es Amazon Data Firehose? en la Guía para desarrolladores de Amazon Data Firehose.
Para publicar en una transmisión de entrega de Kinesis con este componente, publique un mensaje en un tema al que se suscriba este componente. De forma predeterminada, este componente se suscribe a los temas de publicación kinesisfirehose/message
o suscripción kinesisfirehose/message/binary/#
locales. Puede especificar otros temas, incluidos los temas de AWS IoT Core MQTT, al implementar este componente.
nota
Este componente proporciona una funcionalidad similar a la del conector Firehose de la V1. AWS IoT Greengrass Para obtener más información, consulte el conector Firehose en la Guía para desarrolladores de la AWS IoT Greengrass V1.
Temas
Versiones
Este componente tiene las siguientes versiones:
-
2.1.x
-
2.0.x
Tipo
Este componente es un componente Lambda () aws.greengrass.lambda
. El núcleo de Greengrass ejecuta la función Lambda de este componente mediante el componente Lambda launcher.
Para obtener más información, consulte Tipos de componentes.
Sistema operativo
Este componente solo se puede instalar en los dispositivos principales de Linux.
Requisitos
Este componente tiene los siguientes requisitos:
-
El dispositivo principal debe cumplir los requisitos para ejecutar las funciones de Lambda. Si desea que el dispositivo principal ejecute funciones Lambda en contenedores, el dispositivo debe cumplir los requisitos para hacerlo. Para obtener más información, consulte Requisitos de la función de Lambda.
-
Versión 3.7 de Python
instalada en el dispositivo principal y añadida a la variable de entorno PATH. -
El rol de dispositivo de Greengrass debe permitir las
firehose:PutRecordBatch
accionesfirehose:PutRecord
y, como se muestra en el siguiente ejemplo de política de IAM.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:
region
:account-id
:deliverystream/stream-name
" ] } ] }Puede anular dinámicamente el flujo de entrega predeterminado en la carga útil del mensaje de entrada para este componente. Si la aplicación utiliza esta función, la política de IAM debe incluir todas las transmisiones de destino como recursos. Puede conceder acceso granular o condicional a recursos (por ejemplo, utilizando un esquema de nomenclatura con comodín
*
) -
Para recibir los datos de salida de este componente, debe combinar la siguiente actualización de configuración para el componente antiguo del enrutador de suscripciones (
aws.greengrass.LegacySubscriptionRouter
) al implementar este componente. Esta configuración especifica el tema en el que este componente publica las respuestas.Para obtener más información, consulte Crear implementaciones.
-
Se admite la ejecución del componente Firehose en una VPC. Para implementar este componente en una VPC, se requiere lo siguiente.
-
El componente Firehose debe tener una conectividad con la
firehose.region.amazonaws.com
que tenga el punto final de la VPC de.com.amazonaws.region.kinesis-firehose
-
Puntos finales y puertos
Este componente debe poder realizar solicitudes salientes a los siguientes puntos finales y puertos, además de a los puntos finales y puertos necesarios para el funcionamiento básico. Para obtener más información, consulte Permitir el tráfico del dispositivo a través de un proxy o firewall.
punto de enlace | Puerto | Obligatoria | Descripción |
---|---|---|---|
|
443 | Sí |
Sube datos a Firehose. |
Dependencias
Al implementar un componente, AWS IoT Greengrass también despliega versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo correctamente. En esta sección se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola. AWS IoT Greengrass
Configuración
Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.
nota
La configuración predeterminada de este componente incluye los parámetros de la función Lambda. Le recomendamos que edite solo los siguientes parámetros para configurar este componente en sus dispositivos.
lambdaParams
-
Objeto que contiene los parámetros de la función Lambda de este componente. Este objeto contiene la siguiente información:
EnvironmentVariables
-
Objeto que contiene los parámetros de la función Lambda. Este objeto contiene la siguiente información:
DEFAULT_DELIVERY_STREAM_ARN
-
El ARN del flujo de entrega predeterminado de Firehose al que el componente envía los datos. Puede anular la transmisión de destino con la
delivery_stream_arn
propiedad en la carga útil del mensaje de entrada.nota
La función de dispositivo principal debe permitir las acciones necesarias en todas las transmisiones de entrega de destino. Para obtener más información, consulte Requisitos.
PUBLISH_INTERVAL
-
(Opcional) El número máximo de segundos que se deben esperar antes de que el componente publique los datos por lotes en Firehose. Para configurar el componente para que publique las métricas a medida que las reciba, es decir, sin procesamiento por lotes, especifique.
0
Este valor puede ser como máximo de 900 segundos.
Predeterminado: 10 segundos
DELIVERY_STREAM_QUEUE_SIZE
-
(Opcional) El número máximo de registros que se deben conservar en la memoria antes de que el componente rechace nuevos registros para el mismo flujo de entrega.
Este valor debe ser de al menos 2000 registros.
Predeterminado: 5.000 registros
containerMode
-
(Opcional) El modo de contenedorización de este componente. Puede elegir entre las siguientes opciones:
-
NoContainer
— El componente no se ejecuta en un entorno de ejecución aislado. -
GreengrassContainer
— El componente se ejecuta en un entorno de ejecución aislado dentro del AWS IoT Greengrass contenedor.
Predeterminado:
GreengrassContainer
-
containerParams
-
(Opcional) Un objeto que contiene los parámetros del contenedor de este componente. El componente utiliza estos parámetros si se especifica
GreengrassContainer
paracontainerMode
.Este objeto contiene la siguiente información:
memorySize
-
(Opcional) La cantidad de memoria (en kilobytes) que se va a asignar al componente.
El valor predeterminado es 64 MB (65.535 KB).
pubsubTopics
-
(Opcional) Objeto que contiene los temas a los que el componente se suscribe para recibir mensajes. Puede especificar cada tema y si el componente se suscribe a los temas de MQTT AWS IoT Core o a los temas de publicación/suscripción locales.
Este objeto contiene la siguiente información:
0
— Se trata de un índice matricial en forma de cadena.-
Objeto que contiene la siguiente información:
type
-
(Opcional) El tipo de mensajes de publicación/suscripción que utiliza este componente para suscribirse a los mensajes. Puede elegir entre las siguientes opciones:
-
PUB_SUB
— Suscribirse a mensajes locales de publicación/suscripción. Si elige esta opción, el tema no puede contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde un componente personalizado al especificar esta opción, consulte. Publicar/suscribir mensajes locales -
IOT_CORE
— Suscríbase a los mensajes de AWS IoT Core MQTT. Si elige esta opción, el tema puede contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde componentes personalizados al especificar esta opción, consulte. Publicar/suscribir mensajes AWS IoT Core MQTT
Predeterminado:
PUB_SUB
-
topic
-
(Opcional) El tema al que se suscribe el componente para recibir mensajes. Si lo especifica
IotCore
type
, puede usar los comodines MQTT (+
y#
) en este tema.
ejemplo Ejemplo: actualización de la combinación de configuraciones (modo contenedor)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
ejemplo Ejemplo: actualización de la combinación de configuraciones (sin modo contenedor)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }
Datos de entrada
Este componente acepta contenido de transmisión sobre los siguientes temas y lo envía a la transmisión de entrega de destino. El componente acepta dos tipos de datos de entrada:
-
Datos JSON en el tema
kinesisfirehose/message
. -
Datos binarios en el tema
kinesisfirehose/message/binary/#
.
- Tema predeterminado para los datos JSON (publicación/suscripción local):
kinesisfirehose/message
-
El mensaje acepta las siguientes propiedades. Los mensajes de entrada deben tener un formato JSON válido.
request
-
Los datos para enviar a la transmisión de entrega y a la transmisión de entrega de destino, si no es la transmisión predeterminada.
Tipo:
object
que contiene la siguiente información:data
-
Los datos que enviar a la transmisión de entrega.
Tipo:
string
delivery_stream_arn
-
(Opcional) El ARN de la transmisión de entrega de Firehose objetivo. Especifique esta propiedad para anular el flujo de entrega predeterminado.
Tipo:
string
id
-
Un ID arbitrario para la solicitud. Utilice esta propiedad para asignar una solicitud de entrada a una respuesta de salida. Al especificar esta propiedad, el componente establece la
id
propiedad del objeto de respuesta en este valor.Tipo:
string
ejemplo Ejemplo 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" } - Tema predeterminado para datos binarios (publicación/suscripción local):
kinesisfirehose/message/binary/#
-
Consulte este tema para enviar un mensaje que contenga datos binarios. El componente no analiza los datos binarios. El componente transmite los datos tal cual.
Para asignar la solicitud de entrada a una respuesta de salida, sustituya el comodín
#
en el tema del mensaje con un ID de solicitud arbitrario. Por ejemplo, si publica un mensaje enkinesisfirehose/message/binary/request123
, la propiedadid
en el objeto de respuesta se establece enrequest123
.Si no desea asignar una solicitud a una respuesta, puede publicar sus mensajes en
kinesisfirehose/message/binary/
. Asegúrese de incluir la barra final ()/
.
Datos de salida
Este componente publica las respuestas como datos de salida sobre el siguiente tema de MQTT de forma predeterminada. Debe especificar este tema como parte de subject
la configuración del componente antiguo del router de suscripciones. Para obtener más información sobre cómo suscribirse a los mensajes sobre este tema en sus componentes personalizados, consultePublicar/suscribir mensajes AWS IoT Core MQTT.
Tema predeterminado (AWS IoT Core MQTT): kinesisfirehose/message/status
ejemplo Ejemplo de resultados
La respuesta contiene el estado de cada registro de datos enviado en el 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
Si el componente detecta un error que se puede volver a intentar, como un error de conexión, volverá a intentar la publicación en el siguiente lote.
Archivo de registro local
Este componente utiliza el siguiente archivo de registro.
/logs/aws.greengrass.KinesisFirehose.log
/greengrass/v2
Para ver los registros de este componente
-
Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro de este componente en tiempo real.
Sustitúyalo por la ruta a la carpeta AWS IoT Greengrass raíz./greengrass/v2
sudo tail -f
/logs/aws.greengrass.KinesisFirehose.log/greengrass/v2
Licencias
Este componente incluye el siguiente software o licencias de terceros:
-
AWS SDK for Python (Boto3)
/Apache License 2.0 -
botocore
/Apache License 2.0 -
dateutil
/PSF License -
docutils
/BSD License, GNU General Public License (GPL), Python Software Foundation License, Public Domain -
jmespath
/MIT License -
s3transfer
/Apache License 2.0 -
urllib3
/MIT License
Este componente se publica en virtud del contrato de licencia de software principal de Greengrass
Registros de cambios
En la siguiente tabla se describen los cambios en cada versión del componente.
Versión |
Cambios |
---|---|
2.1.7 |
Versión actualizada para la versión 2.12.0 de Greengrass Nucleus. |
2.1.6 |
Versión actualizada para el lanzamiento de la versión 2.11.0 de Greengrass nucleus. |
2.1.5 |
Versión actualizada para el lanzamiento de la versión 2.10.0 de Greengrass nucleus. |
2.1.4 |
Versión actualizada para la versión 2.9.0 de Greengrass Nucleus. |
2.1.3 |
Versión actualizada para el lanzamiento de la versión 2.8.0 del núcleo de Greengrass. |
2.1.2 |
Versión actualizada para el lanzamiento de la versión 2.7.0 de Greengrass Nucleus. |
2.1.1 |
Versión actualizada para el lanzamiento de la versión 2.6.0 de Greengrass Nucleus. |
2.1.0 |
|
2.0.8 |
Versión actualizada para el lanzamiento de la versión 2.5.0 de Greengrass Nucleus. |
2.0.7 |
Versión actualizada para la versión 2.4.0 de Greengrass Nucleus. |
2.0.6 |
Versión actualizada para el lanzamiento de la versión 2.3.0 de Greengrass nucleus. |
2.0.5 |
Versión actualizada para el lanzamiento de la versión 2.2.0 de Greengrass nucleus. |
2.0.4 |
Versión actualizada para el lanzamiento de la versión 2.1.0 de Greengrass nucleus. |
2.0.3 |
Versión inicial. |
Véase también
-
¿Qué es Amazon Data Firehose? en la guía para desarrolladores de Amazon Data Firehose