Configure o Amazon Pinpoint para transmitir dados de eventos do aplicativo por meio do Amazon Kinesis ou do Amazon Data Firehose
Você pode configurar o Amazon Pinpoint para enviar dados de eventos para o fluxo do Amazon Kinesis ou para um fluxo de entrega do Amazon Data Firehose. O Amazon Pinpoint pode enviar dados de eventos para campanhas, viagens e mensagens de e-mail e SMS transacionais.
Esta seção inclui informações sobre como configurar os eventos de streaming de forma programática. Também é possível usar o console do Amazon Pinpoint para configurar a transmissão de eventos. Para obter informações sobre como configurar a transmissão de eventos usando o console do Amazon Pinpoint, consulte Configurações de transmissão de eventos no Guia do usuário do Amazon Pinpoint.
Pré-requisitos
Os exemplos nesta seção exigem a seguinte entrada:
-
O ID de um aplicativo que está integrado com o Amazon Pinpoint e eventos de relatório. Para obter informações sobre como integrar, leia Integrar o Amazon Pinpoint ao seu aplicativo.
-
O nome do recurso da Amazon (ARN) de um fluxo do Kinesis ou fluxo de entrega do Firehose na sua conta da AWS. Para obter mais informações sobre como criar esses recursos, consulte Creating and Managing Streams no Guia do desenvolvedor do Amazon Kinesis Data Streams ou Creating an Amazon Data Firehose delivery stream no Guia do desenvolvedor do Amazon Data Firehose.
-
O ARN de uma função de um perfil do AWS Identity and Access Management (IAM) que autoriza o Amazon Pinpoint a enviar dados para o fluxo. Para obter informações sobre como criar uma função, leia Perfil do IAM para transmissão de eventos para o Kinesis.
AWS CLI
O exemplo de AWS CLI a seguir usa o comando put-event-stream . Este comando configura o Amazon Pinpoint para enviar eventos para um fluxo do Kinesis:
aws pinpoint put-event-stream \ --application-id
projectId
\ --write-event-stream DestinationStreamArn=streamArn
,RoleArn=roleArn
AWS SDK for Java
O exemplo de Java a seguir configura o Amazon Pinpoint para enviar eventos para um fluxo do 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 exemplo estrutura um objeto WriteEventStream
que armazena os ARNs do fluxo do Kinesis e do perfil do IAM. O objeto WriteEventStream
é passado para um objeto PutEventStreamRequest
para configurar o Amazon Pinpoint para enviar fluxos de eventos a um aplicativo específico. O objeto PutEventStreamRequest
é passado para o método putEventStream
do cliente Amazon Pinpoint.
Um fluxo do Kinesis pode ser atribuído a vários aplicativos. Se você fizer isso, o Amazon Pinpoint enviará dados de eventos codificados em base64 de cada aplicativo para o fluxo, o que permite analisar os dados como uma coleção. O método do exemplo a seguir aceita uma lista de IDs de aplicativo (app) e usa o método do exemplo anterior, createEventStream
, para atribuir um stream para cada aplicativo:
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()); }
Apesar ser possível atribuir um fluxo a vários aplicativos, não é possível atribuir vários fluxos a um mesmo aplicativo.