你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Python 的 Azure 存储 Blob ChangeFeed 客户端库 - 版本 12.0.0b4
此 Python 预览包使用户能够获取 Blob 更改源事件。 这些事件可以延迟生成、按页循环访问、在特定时间间隔内检索,或者从特定的继续标记循环访问。
源代码 | 包 (PyPi) | API 参考文档 | 产品文档 | 样品
入门
先决条件
- 使用此包需要 Python 3.6 或更高版本。
- 必须具有 Azure 订阅 和 Azure 存储帐户 才能使用此包。
安装包
使用 pip 安装适用于 Python 的 Azure 存储 Blob ChangeFeed 客户端库:
pip install azure-storage-blob-changefeed --pre
创建存储帐户
如果要创建新的存储帐户,可以使用 Azure 门户、Azure 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
若要启用更改源,可以使用 Azure 门户、Azure PowerShell或模板。
验证客户端
与 Blob ChangeFeed 客户端的交互从 ChangeFeedClient 类的实例开始。 需要现有的存储帐户、其 URL 和凭据来实例化客户端对象。
获取凭据
若要对客户端进行身份验证,可以使用以下几个选项:
- 使用 SAS 令牌字符串
- 使用帐户共享访问密钥
- 使用 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 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。