你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Python 的 Azure 存储 Blob ChangeFeed 客户端库 - 版本 12.0.0b4

此 Python 预览包使用户能够获取 Blob 更改源事件。 这些事件可以延迟生成、按页循环访问、在特定时间间隔内检索,或者从特定的继续标记循环访问。

源代码 | 包 (PyPi) | API 参考文档 | 产品文档 | 样品

入门

先决条件

安装包

使用 pip 安装适用于 Python 的 Azure 存储 Blob ChangeFeed 客户端库:

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

创建存储帐户

如果要创建新的存储帐户,可以使用 Azure 门户Azure PowerShellAzure 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

若要启用更改源,可以使用 Azure 门户Azure 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 提供一个客户端:

  • ChangeFeedClient:此客户端允许你按页获取更改源事件、获取所有更改源事件、获取时间范围内的事件、使用继续标记开始列出事件。

示例

以下部分提供了几个代码片段,涵盖了一些最常见的存储 Blob ChangeFeed,包括:

使用连接字符串创建客户端

使用 Azure 存储帐户的连接字符串创建 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 级别记录。

可以使用 参数在客户端 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 示例

SDK 的 GitHub 存储库中提供了多个存储 Blob ChangeFeed Python SDK 示例。 这些示例提供了使用 Blob ChangeFeed 时经常遇到的其他方案的示例代码:

  • change_feed_samples.py - 在客户端上进行身份验证和操作的示例:
    • 按页列出事件
    • 列出所有事件
    • 列出时间范围内的事件
    • 列出从延续标记开始的事件

贡献

本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 https://cla.microsoft.com

提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。

此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。