Python 用 Azure Storage Blob ChangeFeed クライアント ライブラリ - バージョン 12.0.0b4

Python 用のこのプレビュー パッケージを使用すると、ユーザーは BLOB 変更フィード イベントを取得できます。 これらのイベントは、遅延生成、ページによる反復処理、特定の時間間隔の取得、または特定の継続トークンからの反復処理が可能です。

ソースコード | パッケージ (PyPi) | API リファレンス ドキュメント | 製品ドキュメント | サンプル

作業の開始

前提条件

パッケージをインストールする

pip を使用して Python 用 Azure Storage Blob ChangeFeed クライアント ライブラリをインストールします。

pip install azure-storage-blob-changefeed --pre

ストレージ アカウントの作成

新しいストレージ アカウントを作成する場合は、Azure PortalAzure PowerShell、または Azure CLI を使用できます。

# Create a new resource group to hold the storage account -
# if using an existing resource group, skip this step
az group create --name my-resource-group --location westus2

# Create the storage account
az storage account create -n my-storage-account-name -g my-resource-group

changefeed を有効にするには、Azure PortalAzure PowerShell、またはテンプレートを使用できます。

クライアントを認証する

Blob ChangeFeed クライアントとの対話は、ChangeFeedClient クラスのインスタンスから始まります。 クライアント オブジェクトをインスタンス化するには、既存のストレージ アカウント、その URL、資格情報が必要です。

資格情報の取得

クライアントを認証するには、いくつかのオプションがあります。

  1. SAS トークン文字列を使用する
  2. アカウント共有アクセス キーを使用する
  3. azure.identity からのトークン資格情報を使用する

または、 メソッドを使用して from_connection_string ストレージ接続文字列で認証することもできます。 例: 接続文字列を使用したクライアントの作成を参照してください

アカウント URL に SAS トークンが既に含まれている場合は、資格情報を省略できます。

クライアントの作成

アカウントの URL と資格情報の準備ができたら、ChangeFeedClient を作成できます。

from azure.storage.blob.changefeed import ChangeFeedClient

service = ChangeFeedClient(account_url="https://<my-storage-account-name>.blob.core.windows.net/", credential=credential)

主要な概念

クライアント

Blob ChangeFeed SDK には、次の 1 つのクライアントが用意されています。

  • ChangeFeedClient: このクライアントを使用すると、ページごとに変更フィード イベントを取得し、すべての変更フィード イベントを取得し、時間範囲内のイベントを取得し、継続トークンを使用してイベントの一覧表示を開始できます。

次のセクションでは、次のような最も一般的なストレージ BLOB ChangeFeed の一部をカバーするいくつかのコード スニペットを示します。

接続文字列を使用したクライアントの作成

Azure Storage アカウントへの接続文字列を使用して ChangeFeedClient を作成します。

from azure.storage.blob.changefeed import ChangeFeedClient

service = ChangeFeedClient.from_connection_string(conn_str="my_connection_string")

時間範囲内のイベントの列挙

時間範囲内のすべてのイベントを一覧表示します。

from datetime import datetime
from azure.storage.blob.changefeed import ChangeFeedClient

cf_client = ChangeFeedClient("https://{}.blob.core.windows.net".format("YOUR_ACCOUNT_NAME"),
                             credential="Your_ACCOUNT_KEY")
start_time = datetime(2020, 1, 6)
end_time = datetime(2020, 3, 4)
change_feed = cf_client.list_changes(start_time=start_time, end_time=end_time)

# print range of events
for event in change_feed:
    print(event)

すべてのイベントの列挙

すべてのイベントを一覧表示します。

from azure.storage.blob.changefeed import ChangeFeedClient

cf_client = ChangeFeedClient("https://{}.blob.core.windows.net".format("YOUR_ACCOUNT_NAME"),
                             credential="Your_ACCOUNT_KEY")
change_feed = cf_client.list_changes()

# print all events
for event in change_feed:
    print(event)

ページごとのイベントの列挙

ページごとにイベントを一覧表示します。

from azure.storage.blob.changefeed import ChangeFeedClient

cf_client = ChangeFeedClient("https://{}.blob.core.windows.net".format("YOUR_ACCOUNT_NAME"),
                             credential="Your_ACCOUNT_KEY")

change_feed = cf_client.list_changes().by_page()

# print first page of events
change_feed_page1 = next(change_feed)
for event in change_feed_page1:
    print(event)

トラブルシューティング

ログ記録

このライブラリでは、ログ記録に標準 のログ ライブラリが使用されます。 HTTP セッションに関する基本情報 (URL、ヘッダーなど) は INFO レベルでログに記録されます。

要求/応答本文、未変換ヘッダーなど、詳細な DEBUG レベルのログは、 引数を使用してクライアントで logging_enable 有効にすることができます。

import sys
import logging
from azure.storage.blob.changefeed import ChangeFeedClient

# Create a logger for the 'azure.storage.blob.changefeed' SDK
logger = logging.getLogger('azure.storage')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

# This client will log detailed information about its HTTP sessions, at DEBUG level
service_client = ChangeFeedClient.from_connection_string("your_connection_string", logging_enable=True)

次のステップ

その他のサンプル コード

Azure Blob ChangeFeed サンプルの概要。

いくつかの Storage Blob ChangeFeed Python SDK サンプルは、SDK の GitHub リポジトリで入手できます。 これらのサンプルでは、BLOB ChangeFeed の操作中に一般的に発生するその他のシナリオのコード例を示します。

  • change_feed_samples.py - クライアントでの認証と操作の例:
    • ページごとにイベントを一覧表示する
    • すべてのイベントを一覧表示する
    • 時間範囲内のイベントを一覧表示する
    • 継続トークンから始まるイベントを一覧表示する

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。