在中创建和管理直播 QLDB - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

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

在中创建和管理直播 QLDB

重要

终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

亚马逊QLDB提供API操作来创建和管理从您的账本到 Amazon Kinesis Data Streams 的日记数据流。该QLDB流会捕获提交到您的日记中的每个文档修订并将其发送到 Kinesis 数据流。

您可以使用 AWS Management Console AWS SDK、或 AWS Command Line Interface (AWS CLI) 来创建日记流。此外,您还可以使用 AWS CloudFormation 模板来创建流。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的AWSQLDB::: Stream 资源。

流参数

要创建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直播。

创建流(控制台)
  1. 登录 AWS Management Console,然后通过 https://console.aws.amazon.com/ql db 打开亚马逊QLDB控制台。

  2. 在导航窗格中,选择 Streams(流)

  3. 选择 Create QLDB stream (创建 Kinesis 流)

  4. 创建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 资源添加标签

      选择添加标签,然后输入合适的键值对。

  5. 当设置符合您的需要时,请选择创建QLDB直播

    如果您的请求提交成功,控制台将返回主直播页面,并列出您的QLDB直播及其当前状态。

  6. 在您的流处于活动状态之后,使用 Kinesis 来使用一个使用者应用程序处理您的流数据。

    打开 Kinesis Data Streams 控制台 https://console.aws.amazon.com/kinesis/,网址为。

有关流中数据记录格式的信息,请参阅 QLDB在 Kinesis 中直播记录

要了解如何处理导致错误的流,请参阅处理受损流

取消流(控制台)

取消QLDB直播后,您将无法重启直播。要恢复向 Kinesis Data Streams 传输数据,您可以创建一个QLDB新的数据流。

  1. https://console.aws.amazon.com/ql d QLDB b 上打开亚马逊控制台。

  2. 在导航窗格中,选择 Streams(流)

  3. 在QLDB直播列表中,选择要取消的活动直播。

  4. 选择 取消流。请在提供的框中输入 cancel stream ​​以确认。

有关与 AWS SDK或QLDBAPI一起使用 AWS CLI 来创建和管理日记流的信息,请参阅使用直播进行开发 QLDB

流状态

QLDB直播的状态可以是以下状态之一:

  • ACTIVE— 当前正在流式传输或等待流式传输数据(对于没有结束时间的无限期流)。

  • COMPLETED— 已成功完成指定时间范围内所有日记账区块的流式传输。这是最终状态。

  • CANCELED— 在指定的结束时间之前由用户请求结束,并且不再主动流式传输数据。这是最终状态。

  • IMPAIRED— 由于出现需要您采取措施的错误,无法向 Kinesis 写入记录。这是一种可恢复的非终止状态。

    如果您在一小时内解决了错误,则流会自动进入 ACTIVE 状态。如果错误在一小时后仍未解决,则流会自动进入 FAILED 状态。

  • FAILED— 由于出错,无法向 Kinesis 写入记录,并且处于无法恢复的终止状态。

下图说明了QLDB流资源如何在状态之间转换。

状态图显示了QLDB流资源如何在活动、已取消、已完成、受损和失败状态之间转换。

终端流到期

处于终端状态(CANCELEDCOMPLETED、和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控制台会显示一条横幅,显示有关该直播及其遇到的错误的详细信息。您还可以使用该DescribeJournalKinesisStreamAPI操作来获取直播的状态和潜在的错误原因。

此外,您还可以使用 Amazon CloudWatch 创建用于监控直播IsImpaired指标的警报。有关使用监控QLDB指标的信息 CloudWatch,请参阅Amazon 的QLDB维度和指标