Amazon Kinesis 또는 Amazon Data Firehose를 통해 앱 이벤트 데이터를 스트리밍하도록 Amazon Pinpoint 설정
Amazon Kinesis 스트림 또는Amazon Data Firehose 전송 스트림으로 이벤트를 전송하도록 Amazon Pinpoint를 설정할 수 있습니다. Amazon Pinpoint는 캠페인, 여정, 트랜잭션 이메일 및 SMS 메시지에 대한 이벤트 데이터를 전송할 수 있습니다.
이 단원에는 프로그래밍 방식의 이벤트 스트리밍 설정에 대한 정보가 포함되어 있습니다. Amazon Pinpoint 콘솔을 사용하여 이벤트 스트리밍을 설정할 수도 있습니다. Amazon Pinpoint 콘솔을 사용하여 이벤트 스트리밍을 설정하는 방법에 대한 자세한 내용은 Amazon Pinpoint 사용 설명서의 이벤트 스트림 설정 섹션을 참조하세요.
사전 조건
이 단원의 예제에는 다음 입력이 필요합니다.
-
Amazon Pinpoint 및 보고 이벤트와 통합된 애플리케이션의 애플리케이션 ID입니다. 통합 방법에 대한 자세한 내용은 Amazon Pinpoint를 애플리케이션과 통합 단원을 참조하십시오.
-
AWS 계정 내 Kinesis 스트림 또는 Firehose 전송 스트림의 Amazon 리소스 이름(ARN)입니다. 이러한 리소스를 생성하는 방법에 대한 자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서의 스트림 생성 및 관리 또는 Amazon Data Firehose 개발자 안내서의 Amazon Data Firehose 전송 스트림 생성 섹션을 참조하세요.
-
Amazon Pinpoint가 데이터를 스트림으로 전송하도록 승인하는 AWS Identity and Access Management(IAM) 역할의 ARN. 역할 생성에 대한 자세한 내용은 이벤트를 Kinesis로 스트리밍하기 위한 IAM 역할 단원을 참조하십시오.
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()); }
한 스트림을 여러 애플리케이션에 할당할 수 있지만 여러 스트림을 한 애플리케이션에 할당할 수는 없습니다.