Amazon Kinesis 또는 Amazon Data Firehose를 통해 앱 이벤트 데이터를 스트리밍하도록 Amazon Pinpoint 설정 - Amazon Pinpoint

Amazon Kinesis 또는 Amazon Data Firehose를 통해 앱 이벤트 데이터를 스트리밍하도록 Amazon Pinpoint 설정

Amazon Kinesis 스트림 또는Amazon Data Firehose 전송 스트림으로 이벤트를 전송하도록 Amazon Pinpoint를 설정할 수 있습니다. Amazon Pinpoint는 캠페인, 여정, 트랜잭션 이메일 및 SMS 메시지에 대한 이벤트 데이터를 전송할 수 있습니다.

이 단원에는 프로그래밍 방식의 이벤트 스트리밍 설정에 대한 정보가 포함되어 있습니다. Amazon Pinpoint 콘솔을 사용하여 이벤트 스트리밍을 설정할 수도 있습니다. Amazon Pinpoint 콘솔을 사용하여 이벤트 스트리밍을 설정하는 방법에 대한 자세한 내용은 Amazon Pinpoint 사용 설명서이벤트 스트림 설정 섹션을 참조하세요.

사전 조건

이 단원의 예제에는 다음 입력이 필요합니다.

AWS CLI

다음 AWS CLI 예제에서는 put-event-stream 명령을 사용합니다. 이 명령은 Kinesis 스트림에 이벤트를 전송하도록 Amazon Pinpoint를 구성합니다.

aws pinpoint put-event-stream \ --application-id projectId \ --write-event-stream DestinationStreamArn=streamArn,RoleArn=roleArn

AWS SDK for Java

다음 Java 예제는 이벤트를 Kinesis 스트림으로 전송하도록 Amazon Pinpoint를 구성합니다.

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); }

이 예제에서는 Kinesis 스트림 및 IAM 역할의 ARN을 저장하는 WriteEventStream 객체를 구성합니다. WriteEventStream 객체는 PutEventStreamRequest 객체로 전달되어 특정 애플리케이션의 이벤트를 스트리밍하도록 Amazon Pinpoint를 구성합니다. PutEventStreamRequest 객체는 Amazon Pinpoint 클라이언트의 putEventStream 메서드에 전달됩니다.

한 Kinesis 스트림을 여러 애플리케이션에 할당할 수 있습니다. 이 경우 Amazon Pinpoint가 각 애플리케이션에서 base64로 인코딩된 이벤트 데이터를 스트림으로 전송하므로 데이터를 하나의 모음으로 분석할 수 있습니다. 다음 예제 메서드는 애플리케이션(앱) ID의 목록을 허용하며, 이전 예제 메서드 createEventStream을 사용하여 각 애플리케이션에 스트림을 할당합니다.

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()); }

한 스트림을 여러 애플리케이션에 할당할 수 있지만 여러 스트림을 한 애플리케이션에 할당할 수는 없습니다.