使用 QLDB 中的串流進行開發 - Amazon Quantum Ledger Database (Amazon QLDB)

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

使用 QLDB 中的串流進行開發

本節概述了您可以與 AWS 開發套件搭配使用的 API 操作,或在 AWS CLI Amazon QLDB 中建立和管理日誌串流。同時也說明示範這些作業並使用 Kinesis 用戶端程式庫 (KCL) 或實作串流取用者的範例應 AWS Lambda 用程式。

您可以使用 KCL 為 Amazon Kinesis Data Streams 建置消費者應用程式。KCL 會在低階 Kinesis Data Streams API 上提供有用的抽象,可以簡化程式碼。若要進一步了解 KCL,請參閱 Amazon Kinesis 資料串流開發人員指南中的使用 Kinesis 用戶端程式庫

QLDB 日誌串流 API

QLDB API 提供下列日誌串流作業,供應用程式使用:

  • StreamJournalToKinesis— 為指定的 QLDB 分類帳建立日誌資料流。串流會擷取提交至分類帳期刊的每個文件修訂版,並將資料傳送至指定的 Kinesis Data Streams 資源。

    • Kinesis Data Streams 中的記錄彙總預設為啟用。此選項可讓 QLDB 在單一 Kinesis 資料串流記錄中發佈多個資料記錄,從而增加每個 API 呼叫傳送的記錄數量。

      記錄彙總對於處理記錄具有重要意義,並且需要在串流取用者中進行解除彙總。若要進一步了解,請參閱 Amazon Kinesis Data Streams 開發人員指南中的 KPL 關鍵概念消費者去彙總

  • DescribeJournalKinesisStream— 傳回有關指定 QLDB 日誌串流的詳細資訊。輸出包括 ARN、串流名稱、目前狀態、建立時間,以及原始串流建立要求的參數。

  • ListJournalKinesisStreamsForLedger— 傳回指定分類帳之所有 QLDB 日誌串流描述子的清單。每個串流描述元的輸出都包含傳回的相同詳細資料DescribeJournalKinesisStream

  • CancelJournalKinesisStream— 結束指定的 QLDB 日誌串流。在可以取消流之前,其當前狀態必須是ACTIVE

    取消串流後,您無法重新啟動該串流。若要繼續將資料傳遞至 Kinesis Data Streams,您可以建立新的 QLDB 串流。

如需這些 API 作業的完整說明,請參閱Amazon QLDB API 參考參考.

如需使用建立和管理日誌串流的相關資訊 AWS CLI,請參閱命AWS CLI 令參考

範例應用程式

QLDB 提供範例應用程式,示範使用日誌串流的各種作業。這些應用程式是AWS 範例 GitHub 網站上的開放原始碼。

基本操作

如需示範 QLDB 日誌串流基本作業的 Java 程式碼範例,請參閱 GitHub 儲存庫 aw amazon-qldb-dmv-sample s-範例 /-java。如需如何下載和安裝此範例應用程式的指示,請參閱安裝亞馬遜 QLDB Java 範例應用程式

注意

安裝應用程式後,請勿繼續執行 Java 教學課程的步驟 1 來建立分類帳。此用於流式傳輸的示例應用程序為您創建vehicle-registration分類帳。

此範例應用程式會封裝來自Java 教學及其相依性的完整原始程式碼,包括下列模組:

執行程式碼

StreamJournal類別包含示範下列作業的教學課程程式碼:

  1. 建立名為的分類帳vehicle-registration、建立表格,並使用範例資料載入表格。

    注意

    在執行此程式碼之前,請確定您尚未擁有名為的作用中總帳vehicle-registration

  2. 建立 Kinesis 資料串流、允許 QLDB 假設 Kinesis 資料串流寫入權限的 IAM 角色,以及 QLDB 日誌串流。

  3. 使用 KCL 啟動處理 Kinesis 資料串流的串流讀取器,並記錄每個 QLDB 資料記錄。

  4. 使用串流資料來驗證vehicle-registration範例分類帳的雜湊鏈。

  5. 停止串流讀取器、取消 QLDB 日誌串流、刪除分類帳以及刪除 Kinesis 資料串流,以清理所有資源。

要運行StreamJournal教程代碼,請從項目根目錄輸入以下 Gradle 命令。

./gradlew run -Dtutorial=streams.StreamJournal

與 OpenSearch 服務 Python 合

如需示範如何將 QLDB 串流與 Amazon OpenSearch 服務整合的 Python 範例應用程式,請參閱 GitHub 儲存庫 aw amazon-qldb-streaming-amazon s-範例/-。opensearch-service-sample-python此應用程式使用 AWS Lambda 函數來實作 Kinesis Data Streams 取用者。

若要複製存放庫,請輸入下列git命令。

git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git

若要執行範例應用程式,請參閱的 README 中 GitHub 的說明。

與 Amazon SNS 和 Amazon SQS(Python)集成

如需示範如何將 QLDB 串流與亞馬遜簡單通知服務 (Amazon SNS) 整合的 Python 範例應用程式,請參閱 GitHub 儲存庫 aw amazon-qldb-streams-dmv s-範例/-。sample-lambda-python

此應用程式使用 AWS Lambda 函數來實作 Kinesis Data Streams 取用者。它將消息發送到 Amazon SNS 主題,該主題已訂閱 Amazon Simple Queue Service (Amazon SQS) 隊列。

若要複製存放庫,請輸入下列git命令。

git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git

若要執行範例應用程式,請參閱的 README 中 GitHub 的說明。