

**支援終止通知：**2026 年 10 月 30 日， AWS 將結束對 Amazon Pinpoint 的支援。2026 年 10 月 30 日之後，您將無法再存取 Amazon Pinpoint 主控台或 Amazon Pinpoint 資源 (端點、區段、行銷活動、旅程和分析)。如需詳細資訊，請參閱 [Amazon Pinpoint 終止支援](https://docs.aws.amazon.com/console/pinpoint/migration-guide)。**注意：**與 SMS、語音、行動推播、OTP 和電話號碼驗證相關的 APIs 不受此變更影響，並受 AWS 最終使用者傳訊支援。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 Amazon Pinpoint 透過 Amazon Kinesis 或 Amazon Data Firehose 串流應用程式事件資料
<a name="event-streams-setup"></a>

您可以設定 Amazon Pinpoint 將事件資料傳送至 Amazon Kinesis 串流或 Amazon Data Firehose 交付串流。Amazon Pinpoint 可以傳送行銷活動、旅程、交易電子郵件和 SMS 訊息的事件資料。

本節包含透過編寫程式的方式設定事件串流的資訊。您也可以使用 Amazon Pinpoint 主控台設定事件串流。如需使用 Amazon Pinpoint 主控台設定事件串流的相關資訊，請參閱 *Amazon Pinpoint 使用者指南*中的[事件串流設定](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-event-streams.html)。

## 先決條件
<a name="event-streams-setup-prerequisites"></a>

本節中的範例需要以下輸入：
+ 與 Amazon Pinpoint 和報告事件整合的應用程式 ID。如需有關如何整合的資訊，請參閱[將 Amazon Pinpoint 與您的應用程式整合](integrate.md)。
+ 您 AWS 帳戶中 Kinesis 串流或 Firehose 交付串流的 Amazon Resource Name (ARN)。如需有關建立這些資源的資訊，請參閱《*Amazon Kinesis Data* [Streams 開發人員指南》中的建立和管理](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html)串流，或《[Amazon Data Firehose 開發人員指南》中的建立 Amazon Data Firehose 交付串流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。 **
+ 授權 Amazon Pinpoint 將資料傳送至串流的 AWS Identity and Access Management (IAM) 角色 ARN。如需有關建立角色的資訊，請參閱[將事件串流到 Kinesis 的 IAM 角色](permissions-streams.md)。

## AWS CLI
<a name="event-streams-setup-cli"></a>

下列 AWS CLI 範例使用 [put-event-stream](https://docs.aws.amazon.com/cli/latest/reference/pinpoint/put-event-stream.html) 命令。此命令設定 Amazon Pinpoint 將傳送事件到 Kinesis 串流：

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

## 適用於 Java 的 AWS SDK
<a name="event-streams-setup-java"></a>

以下 Java 範例設定 Amazon Pinpoint 將事件傳送到 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);
}
```

此範例建構了 `WriteEventStream` 物件，以存放 Kinesis 串流和 IAM 角色的 ARN。將 `WriteEventStream` 物件傳遞到 `PutEventStreamRequest` 物件，以設定 Amazon Pinpoint 為特定應用程式串流事件。將 `PutEventStreamRequest` 物件傳遞至 Amazon Pinpoint 用戶端的 `putEventStream` 方法。

您可以將 Kinesis 串流指派給多個應用程式。如果您執行此操作，Amazon Pinpoint 會將每個應用程式中，以 base64 編碼的事件資料傳送到串流，讓您將資料當成集合分析。以下範例方法接受應用程式 (app) 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());
}
```

雖然您可以將一個串流指派給多個應用程式，但您無法將多個串流指派給一個應用程式。