本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建和管理直播 QLDB
重要
终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL
亚马逊QLDB提供API操作来创建和管理从您的账本到 Amazon Kinesis Data Streams 的日记数据流。该QLDB流会捕获提交到您的日记中的每个文档修订并将其发送到 Kinesis 数据流。
您可以使用 AWS Management Console AWS SDK、或 AWS Command Line Interface (AWS CLI) 来创建日记流。此外,您还可以使用 AWS CloudFormation
流参数
要创建QLDB日记流,必须提供以下配置参数:
- 分类账
-
您要将其日记数据流式传输到 Kinesis Data Streams 的QLDB账本。
- 流名称
-
您要分配给QLDB日记流的名称。用户定义的名称有助于识别和指示流的用途。
您的流名称在给定分类账的其他活动的 流中必须是唯一的。流名称与分类账名称具有相同的命名约束,如 Amazon 中的配额和限制 QLDB 中所定义。
除了直播名称外,还会为您创建的每个直播QLDB分配一个QLDB直播 ID。在给定分类账的所有流中,流 ID 是唯一的,无论其状态如何。
- 开始日期和时间
-
开始流式传输日记账数据的开始日期和时间。此值可以是过去的任何日期和时间,但是不能是将来的任何日期和时间。
- 结束日期和时间
-
(可选)指定流结束的日期和时间。
如果您创建了一个没有结束时间的无限期流,您必须手动取消它以结束流。您还可以取消一个尚未达到指定结束日期和时间的活动有限流。
- 目标 Kinesis 数据流
-
您的数据流写入数据记录的 Kinesis Data Streams 目标资源。要了解如何创建 Kinesis 数据流,请参阅Amazon Kinesis Data Streams 开发者指南 中的 创建和更新数据流。
重要
-
不支持跨账户和跨区域流。指定的Kinesis数据流必须与您的账本位于相同的 AWS 区域 和分类账中。
-
默认情况下,Kinesis Data Streams 中的记录聚合处于启用状态。此选项允许在单个 Kinesis Data Streams 记录中QLDB发布多条数据记录,从而增加API每次调用发送的记录数量。
记录聚合对记录处理具有重要影响,并且需要在流使用者中取消聚合。要了解更多信息,请参阅《Amazon Kinesis Data Streams 开发者指南》中的KPL关键概念和消费者分解。
-
- IAM角色
-
允许承担QLDB对您的 Kinesis 数据流的写入权限的IAM角色。您可以使用QLDB控制台自动创建此角色,也可以在中手动创建该角色IAM。要了解如何手动创建,请参阅流权限。
要在请求日记流QLDB时将角色传递给,您必须具有对IAM角色资源执行
iam:PassRole
操作的权限。
直播 ARN
每个QLDB日记流都是账本的子资源,由 Amazon 资源名称 (ARN) 进行唯一标识。以下是名为ARN的账本的QLDB流 ID IiPT4brpZCqCq3f4MTHbYy
为的流示例exampleLedger
。
arn:aws:qldb:us-east-1:123456789012:stream/exampleLedger/IiPT4brpZCqCq3f4MTHbYy
下一节介绍如何使用创建和取消QLDB直播 AWS Management Console。
AWS Management Console
按照以下步骤使用QLDB控制台创建或取消QLDB直播。
创建流(控制台)
登录 AWS Management Console,然后通过 https://console.aws.amazon.com/ql
db 打开亚马逊QLDB控制台。 -
在导航窗格中,选择 Streams(流)。
-
选择 Create QLDB stream (创建 Kinesis 流)。
-
在创建QLDB直播页面上,输入以下设置:
-
直播名称-您要为QLDB直播分配的名称。
-
分类账 — 要流式传输其日记账数据的分类账。
-
开始日期和时间-协调世界时 (UTC) 中的包含时间戳,从该时间戳开始流式传输日记数据。此时间戳默认为当前日期和时间。时间不能在将来中,并且必须早于结束日期和时间。
-
结束日期和时间-(可选)指定直播何时结束的独家时间戳 (UTC)。如果不定义此参数,则流将无限期运行,直到您取消它。
-
目标流 — 您的数据流向其写入数据记录的 Kinesis Data Streams 目标资源。使用以下ARN格式。
arn:aws:kinesis:
aws-region
:account-id
:stream/kinesis-stream-name
以下是示例。
arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb
不支持跨账户和跨区域流。指定的 Kinesis 数据流必须 AWS 区域 与您的账本相同。
-
在 Kinesis Data Streams 中启用记录聚合 —(默认启用)QLDB让我们在单个 Kinesis Data Streams 记录中发布多条数据记录,从而增加每次调用发送的记录数量。API
-
服务访问权限-向您的 Kinesis 数据流授予QLDB写入权限的IAM角色。
要在请求日记流QLDB时将角色传递给,您必须具有对IAM角色资源执行
iam:PassRole
操作的权限。-
创建和使用新的服务角色 - 让控制台为您创建一个具有指定 Kinesis 数据流所需权限的新角色。
-
使用现有的服务角色-要了解如何在中手动创建此角色IAM,请参阅流权限。
-
-
标签 –(可选)通过以键值对的形式附加标签来向角色添加元数据。您可以向流中添加标签来帮助组织和标识这些它们。有关更多信息,请参阅为 Amazon QLDB 资源添加标签。
选择添加标签,然后输入合适的键值对。
-
-
当设置符合您的需要时,请选择创建QLDB直播。
如果您的请求提交成功,控制台将返回主直播页面,并列出您的QLDB直播及其当前状态。
-
在您的流处于活动状态之后,使用 Kinesis 来使用一个使用者应用程序处理您的流数据。
打开 Kinesis Data Streams 控制台 https://console.aws.amazon.com/kinesis/
,网址为。
有关流中数据记录格式的信息,请参阅 QLDB在 Kinesis 中直播记录。
要了解如何处理导致错误的流,请参阅处理受损流。
取消流(控制台)
取消QLDB直播后,您将无法重启直播。要恢复向 Kinesis Data Streams 传输数据,您可以创建一个QLDB新的数据流。
在 https://console.aws.amazon.com/ql
d QLDB b 上打开亚马逊控制台。 -
在导航窗格中,选择 Streams(流)。
-
在QLDB直播列表中,选择要取消的活动直播。
-
选择 取消流。请在提供的框中输入
cancel stream
以确认。
有关与 AWS SDK或QLDBAPI一起使用 AWS CLI 来创建和管理日记流的信息,请参阅使用直播进行开发 QLDB。
流状态
QLDB直播的状态可以是以下状态之一:
-
ACTIVE
— 当前正在流式传输或等待流式传输数据(对于没有结束时间的无限期流)。 -
COMPLETED
— 已成功完成指定时间范围内所有日记账区块的流式传输。这是最终状态。 -
CANCELED
— 在指定的结束时间之前由用户请求结束,并且不再主动流式传输数据。这是最终状态。 -
IMPAIRED
— 由于出现需要您采取措施的错误,无法向 Kinesis 写入记录。这是一种可恢复的非终止状态。如果您在一小时内解决了错误,则流会自动进入
ACTIVE
状态。如果错误在一小时后仍未解决,则流会自动进入FAILED
状态。 -
FAILED
— 由于出错,无法向 Kinesis 写入记录,并且处于无法恢复的终止状态。
下图说明了QLDB流资源如何在状态之间转换。
终端流到期
处于终端状态(CANCELED
、COMPLETED
、和FAILED
)的流资源的保留期为 7 天。此限制到期后,它们会自动被硬删除。
删除终端直播后,您将无法再使用QLDB控制台或QLDBAPI来描述或列出直播资源。
处理受损流
如果您的流遇到错误,它会先移至 IMPAIRED
状态。QLDB继续重试IMPAIRED
直播长达一小时。
如果您在一小时内解决了错误,则流会自动进入 ACTIVE
状态。如果错误在一小时后仍未解决,则流会自动进入 FAILED
状态。
受损或失败的流可能由以下错误原因之一:
-
KINESIS_STREAM_NOT_FOUND
— 目标 Kinesis Data Streams 资源不存在。验证您在直播请求中提供的 Kinesis 数据QLDB流是否正确。然后,前往 Kinesis 并创建您指定的数据流。 -
IAM_PERMISSION_REVOKED
— QLDB 没有足够的权限将数据记录写入您指定的 Kinesis 数据流。验证您是否为指定的 Kinesis 数据流定义了策略,该策略向QLDB服务 (qldb.amazonaws.com
) 授予以下操作的权限:-
kinesis:PutRecord
-
kinesis:PutRecords
-
kinesis:DescribeStream
-
kinesis:ListShards
-
监控受损流
如果直播受损,QLDB控制台会显示一条横幅,显示有关该直播及其遇到的错误的详细信息。您还可以使用该DescribeJournalKinesisStream
API操作来获取直播的状态和潜在的错误原因。
此外,您还可以使用 Amazon CloudWatch 创建用于监控直播IsImpaired
指标的警报。有关使用监控QLDB指标的信息 CloudWatch,请参阅Amazon 的QLDB维度和指标。