在 Amazon Chime SDK 消息传递中流式传递消息数据
您可以配置 AppInstance
,从而以流的形式接收消息和频道事件等数据。然后,您可以对这些数据做出实时反应。目前,Amazon Chime SDK 消息传递仅接受 Kinesis 流作为流目的地。要使用具有此功能的 Kinesis 流,您必须具备以下先决条件:
-
Kinesis 流必须位于与
AppInstance
相同的 AWS 账户中。 -
流必须与
AppInstance
在同一个区域。 -
流名称的前缀以
chime-messaging-
开头。 -
您必须配置至少两个分片。每个分片每秒最多可接收 1MB 的数据,因此请相应地扩展您的数据流。
-
必须启用服务器端加密 (SSE)
配置 Kinesis 流
-
使用上一节中的先决条件创建一个或多个 Kinesis 流,然后获取 ARN。除了 Amazon Chime 权限外,还要确保呼叫者拥有 Kinesis 权限。
以下示例说明如何使用 AWS CLI 创建包含两个分片的 Kinesis 流,以及如何启用 SSE。
aws kinesis create-stream --stream-name
chime-messaging-unique-name
--shard-count2
aws kinesis start-stream-encryption --stream-name
chime-messaging-unique-name
--encryption-type KMS --key-id "alias
/aws/kinesis" -
通过调用 PutMessagingStreamingConfigurations API 来配置流式传输。
您可以配置两种数据类型中的一种或两种,也可以为它们选择相同的流或单独的流。
以下示例介绍了如何使用 AWS CLI 配置
appinstance
,以便流式传输ChannelMessage
和Channel
数据类型。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
生成的事件类型 CREATE_CHANNEL_MESSAGE
REDACT_CHANNEL_MESSAGE
UPDATE_CHANNEL_MESSAGE
DELETE_CHANNEL_MESSAGE
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
-
开始从您配置的 Kinesis 流中读取数据。
注意
在配置流之前发送的任何事件都不会发送到您的 Kinesis 流中。
Data format(数据格式)
Kinesis 以 JSON 格式输出包含以下字段的记录:EventType
和 Payload
。有效负载格式取决于 EventType
。下表列出了事件类型及其对应的负载格式。
EventType | 有效负载格式 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|