Configurar Amazon Pinpoint para transmitir datos de eventos de aplicación a través de Amazon Kinesis o Amazon Data Firehose
Puede configurar Amazon Pinpoint para enviar datos de eventos a un flujo de Amazon Kinesis o un flujo de entrega de Amazon Data Firehose. Amazon Pinpoint puede enviar datos de eventos para campañas, recorridos y mensajes transaccionales de correo electrónico y SMS.
En esta sección se incluye información sobre la configuración del streaming de eventos mediante programación. También puede utilizar la consola de Amazon Pinpoint para configurar la transmisión de eventos. Para obtener información acerca de la configuración de la transmisión de eventos mediante la consola de Amazon Pinpoint, consulte Configuración de la transmisión de eventos en la Guía del usuario de Amazon Pinpoint.
Requisitos previos
Los ejemplos de esta sección requieren los datos siguientes:
-
El ID de aplicación de una aplicación que está integrada con Amazon Pinpoint y eventos de notificación. Para obtener información acerca de cómo efectuar la integración, consulte Integrar Amazon Pinpoint con la aplicación.
-
El Nombre de recurso de Amazon (ARN) de una secuencia de Kinesis o un flujo de entrega de Firehose en la cuenta de AWS. Para obtener información acerca de la creación de estos recursos, consulte Creación y administración de secuencias en la Guía para desarrolladores de Amazon Kinesis Data Streams o Creación de un flujo de entrega de Amazon Data Firehose en la Guía para desarrolladores de Amazon Data Firehose.
-
El ARN de un rol de AWS Identity and Access Management (IAM) que autoriza a Amazon Pinpoint a enviar datos a la secuencia. Para obtener información acerca de la creación de un rol, consulte Rol de IAM para la transmisión de eventos a Kinesis.
AWS CLI
En el siguiente ejemplo de la AWS CLI se utiliza el comando put-event-stream. Este comando configura Amazon Pinpoint para enviar eventos a una secuencia de Kinesis:
aws pinpoint put-event-stream \ --application-id
projectId
\ --write-event-stream DestinationStreamArn=streamArn
,RoleArn=roleArn
AWS SDK for Java
El siguiente ejemplo de Java configura Amazon Pinpoint para enviar eventos a una secuencia de Kinesis:
public PutEventStreamResult createEventStream(AmazonPinpoint pinClient, String appId, String streamArn, String roleArn) { WriteEventStream stream = new WriteEventStream() .withDestinationStreamArn(streamArn) .withRoleArn(roleArn); PutEventStreamRequest request = new PutEventStreamRequest() .withApplicationId(appId) .withWriteEventStream(stream); return pinClient.putEventStream(request); }
Este ejemplo construye un objeto WriteEventStream
que almacena los ARN de la secuencia de Kinesis y el rol de IAM. El objeto WriteEventStream
se transfiere a un objeto PutEventStreamRequest
para configurar Amazon Pinpoint de forma que transmita los eventos correspondientes para una aplicación específica. El objeto PutEventStreamRequest
se transmite al método putEventStream
del cliente de Amazon Pinpoint.
Puede asignar una secuencia de Kinesis a varias aplicaciones. Si lo hace, Amazon Pinpoint envía datos de los eventos codificados en base64 desde cada aplicación a la secuencia, lo que le permite analizar los datos como una colección. El siguiente método de ejemplo acepta una lista de ID de aplicación (app) y utiliza el método de ejemplo anterior, createEventStream
, para asignar una secuencia a cada aplicación:
public List<PutEventStreamResult> createEventStreamFromAppList( AmazonPinpoint pinClient, List<String> appIDs, String streamArn, String roleArn) { return appIDs.stream() .map(appId -> createEventStream(pinClient, appId, streamArn, roleArn)) .collect(Collectors.toList()); }
Aunque es posible asignar una secuencia a varias aplicaciones, no es posible asignar varias secuencias a una aplicación.