Configurar Amazon Pinpoint para transmitir datos de eventos de aplicación a través de Amazon Kinesis o Amazon Data Firehose - Amazon Pinpoint

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:

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.