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 Portal, 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 Portal, 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: 이 클라이언트를 사용하면 페이지별로 변경 피드 이벤트를 가져오고, 모든 변경 피드 이벤트를 가져오고, 시간 범위에서 이벤트를 가져오고, 연속 토큰으로 이벤트 목록을 시작할 수 있습니다.

예제

다음 섹션에서는 다음을 포함하여 가장 일반적인 Storage 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 샘플을 시작합니다.

SDK의 GitHub 리포지토리에서 여러 Storage Blob ChangeFeed Python SDK 샘플을 사용할 수 있습니다. 이러한 샘플은 Blob ChangeFeed를 사용하는 동안 일반적으로 발생하는 추가 시나리오에 대한 예제 코드를 제공합니다.

  • change_feed_samples.py - 클라이언트에서 인증 및 작동에 대한 예:
    • 페이지별 이벤트 나열
    • 모든 이벤트 나열
    • 시간 범위의 목록 이벤트
    • 연속 토큰에서 시작하는 이벤트 나열

참여

이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com 을 참조하세요.

끌어오기 요청을 제출하면 CLA-bot은 CLA를 제공하고 PR을 적절하게 데코레이팅해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 설명). 봇에서 제공하는 지침을 따르기만 하면 됩니다. 이 작업은 CLA를 사용하여 모든 리포지토리에서 한 번만 수행하면 됩니다.

이 프로젝트에는 Microsoft Open Source Code of Conduct(Microsoft 오픈 소스 준수 사항)가 적용됩니다. 자세한 내용은 Code of Conduct FAQ(규정 FAQ)를 참조하세요. 또는 추가 질문이나 의견은 opencode@microsoft.com으로 문의하세요.