流式传递消息数据 - Amazon Chime SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

流式传递消息数据

您可以配置 AppInstance,从而以流的形式接收消息和频道事件等数据。然后,您可以对这些数据做出实时反应。目前,Amazon Chime SDK 消息传递仅接受 Kinesis 直播作为直播目的地。要使用具有此功能的 Kinesis 流,您必须具备以下先决条件:

  • Kinesis 直播必须与使用同一个 AWS 账户。AppInstance

  • 流必须与 AppInstance 在同一个区域。

  • 流名称的前缀以 chime-messaging- 开头。

  • 您必须配置至少两个分片。每个分片每秒最多可接收 1MB 的数据,因此请相应地扩展您的数据流。

  • 必须启用服务器端加密 (SSE)

配置 Kinesis 流
  1. 使用上一节中的先决条件创建一个或多个 Kinesis 流,然后获取 ARN。除了 Amazon Chime 权限外,还要确保来电者还拥有 Kinesis 权限。

    以下示例说明如何使用 AWS CLI 创建包含两个分片的 Kinesis 流,以及如何启用 SSE。

    aws kinesis create-stream --stream-name chime-messaging-unique-name --shard-count 2

    aws kinesis start-stream-encryption --stream-name chime-messaging-unique-name --encryption-type KMS --key-id "alias/aws/kinesis"

  2. 通过调用 PutMessagingStreamingConfigurationsAPI 配置直播。

    您可以配置两种数据类型中的一种或两种,也可以为它们选择相同的流或单独的流。

    以下示例说明如何使用 AWS CLI 配置appinstance为流式传输ChannelMessageChannel数据类型。

    aws chime-sdk-messaging put-messaging-streaming-configurations --app-instance-arn app_instance_arn \ --streaming-configurations DataType=ChannelMessage,ResourceArn=kinesis_data_stream_arn
    aws chime-sdk-messaging put-messaging-streaming-configurations --app-instance-arn app_instance_arn \ --streaming-configurations DataType=Channel,ResourceArn=kinesis_data_stream_arn

    数据类型的作用域如下:

    DataType 生成的事件类型

    ChannelMessage

    CREATE_CHANNEL_MESSAGE

    REDACT_CHANNEL_MESSAGE

    UPDATE_CHANNEL_MESSAGE

    DELETE_CHANNEL_MESSAGE

    Channel

    CREATE_CHANNEL

    CREATE_SUB_CHANNEL

    UPDATE_CHANNEL

    DELETE_CHANNEL

    UPDATE_CHANNEL_EXPIRATION_SETTINGS

    DELETE_SUB_CHANNEL

    CREATE_CHANNEL_MEMBERSHIP

    DELETE_CHANNEL_MEMBERSHIP

    CREATE_CHANNEL_BAN

    DELETE_CHANNEL_BAN

    CREATE_CHANNEL_MODERATOR

    DELETE_CHANNEL_MODERATOR

  3. 开始从您配置的 Kinesis 流中读取数据。

    注意

    在配置流之前发送的任何事件都不会发送到您的 Kinesis 流中。

Data format(数据格式)

Kinesis 以 JSON 格式输出包含以下字段的记录:EventTypePayload。有效负载格式取决于 EventType。下表列出了事件类型及其对应的负载格式。

EventType 有效负载格式

CREATE_CHANNEL_MESSAGE

Channel message

REDACT_CHANNEL_MESSAGE

UPDATE_CHANNEL_MESSAGE

DELETE_CHANNEL_MESSAGE

CREATE_CHANNEL

Channel

UPDATE_CHANNEL

DELETE_CHANNEL

UPDATE_CHANNEL_EXPIRATION_SETTINGS

CREATE_CHANNEL_MEMBERSHIP

ChannelMembership

DELETE_CHANNEL_MEMBERSHIP

CREATE_CHANNEL_BAN

ChannelBan

DELETE_CHANNEL_BAN

CREATE_CHANNEL_MODERATOR

ChannelModerator

DELETE_CHANNEL_MODERATOR

CREATE_SUB_CHANNEL

channelARN

SubChannelId

DELETE_SUB_CHANNEL