Udostępnij za pośrednictwem


Udostępniona biblioteka klienta platformy Azure dla języka Python — wersja 1.29.6

Platforma Azure Core udostępnia udostępnione wyjątki i moduły dla bibliotek klienckich zestawu SDK języka Python. Te biblioteki są zgodne z wytycznymi dotyczącymi projektowania zestawu SDK platformy Azure dla języka Python .

Jeśli jesteś deweloperem biblioteki klienta, zapoznaj się z dokumentacją dla deweloperów biblioteki klienta , aby uzyskać więcej informacji.

Kod | źródłowyPakiet (Pypi) | Pakiet (Conda) | Dokumentacja referencyjna interfejsu API

Zrzeczenie odpowiedzialności

Obsługa pakietów języka Python zestawu Azure SDK dla języka Python 2.7 została zakończona 01 stycznia 2022 r. Aby uzyskać więcej informacji i pytań, zapoznaj się z artykułem https://github.com/Azure/azure-sdk-for-python/issues/20691

Wprowadzenie

Zazwyczaj nie trzeba instalować platformy Azure Core; zostanie ona zainstalowana po zainstalowaniu jednej z bibliotek klienckich przy użyciu niej. Jeśli chcesz ją jawnie zainstalować (aby zaimplementować własną bibliotekę klienta, na przykład), możesz ją znaleźć tutaj.

Kluczowe pojęcia

Wyjątki biblioteki podstawowej platformy Azure

AzureError

AzureError jest podstawowym wyjątkiem dla wszystkich błędów.

class AzureError(Exception):
    def __init__(self, message, *args, **kwargs):
        self.inner_exception = kwargs.get("error")
        self.exc_type, self.exc_value, self.exc_traceback = sys.exc_info()
        self.exc_type = self.exc_type.__name__ if self.exc_type else type(self.inner_exception)
        self.exc_msg = "{}, {}: {}".format(message, self.exc_type, self.exc_value)  # type: ignore
        self.message = str(message)
        self.continuation_token = kwargs.get("continuation_token")
        super(AzureError, self).__init__(self.message, *args)

komunikat to dowolny komunikat (str), który ma być skojarzony z wyjątkiem.

args są wszelkie dodatkowe args , które mają być dołączone z wyjątkiem.

kwargs to argumenty słów kluczowych do uwzględnienia z wyjątkiem. Użyj błędu słowa kluczowego, aby przekazać wyjątek wewnętrzny i continuation_token odwołania do tokenu, aby kontynuować niekompletną operację.

Następujące wyjątki dziedziczą po usłudze AzureError:

ServiceRequestError

Wystąpił błąd podczas próby wykonania żądania do usługi. Nie wysłano żądania.

ServiceResponseError

Żądanie zostało wysłane, ale klient nie zrozumiał odpowiedzi. Upłynął limit czasu połączenia. Te błędy można ponowić w przypadku operacji idempotentnych lub bezpiecznych.

HttpResponseError

Zostało wykonane żądanie, a kod stanu nie powodzenia został odebrany z usługi.

class HttpResponseError(AzureError):
    def __init__(self, message=None, response=None, **kwargs):
        self.reason = None
        self.response = response
        if response:
            self.reason = response.reason
            self.status_code = response.status_code
        self.error = self._parse_odata_body(ODataV4Format, response)  # type: Optional[ODataV4Format]
        if self.error:
            message = str(self.error)
        else:
            message = message or "Operation returned an invalid status '{}'".format(
                self.reason
            )

        super(HttpResponseError, self).__init__(message=message, **kwargs)

komunikat to komunikat o błędzie odpowiedzi HTTP (opcjonalnie)

odpowiedź to odpowiedź HTTP (opcjonalnie).

kwargs to argumenty słów kluczowych do uwzględnienia z wyjątkiem.

Następujące wyjątki dziedziczą błąd HttpResponseError:

DecodeError

Wystąpił błąd podczas dese serializacji odpowiedzi.

Niekompletny błądReadError

Wystąpił błąd, jeśli element równorzędny zamyka połączenie, zanim otrzymaliśmy pełną treść komunikatu.

ResourceExistsError

Odpowiedź o błędzie z kodem stanu 4xx. Nie zostanie to podniesione bezpośrednio przez podstawowy potok platformy Azure.

ResourceNotFoundError

Odpowiedź o błędzie, zwykle wyzwalana przez odpowiedź 412 (dla aktualizacji) lub 404 (w przypadku polecenia get/post).

ResourceModifiedError

Odpowiedź na błąd z kodem stanu 4xx, zazwyczaj 412 Konflikt. Nie zostanie to podniesione bezpośrednio przez podstawowy potok platformy Azure.

ResourceNotModifiedError

Odpowiedź o błędzie z kodem stanu 304. Nie zostanie to podniesione bezpośrednio przez podstawowy potok platformy Azure.

ClientAuthenticationError

Odpowiedź o błędzie z kodem stanu 4xx. Nie zostanie to podniesione bezpośrednio przez podstawowy potok platformy Azure.

TooManyRedirectsError

Wystąpił błąd podczas osiągnięcia maksymalnej liczby prób przekierowania. Maksymalną liczbę przekierowań można skonfigurować w polityce przekierowania.

class TooManyRedirectsError(HttpResponseError):
    def __init__(self, history, *args, **kwargs):
        self.history = history
        message = "Reached maximum redirect attempts."
        super(TooManyRedirectsError, self).__init__(message, *args, **kwargs)

historia służy do dokumentowania żądań/odpowiedzi, które spowodowały przekierowanie żądań.

args są wszelkie dodatkowe args , które mają być dołączone z wyjątkiem.

kwargs to argumenty słów kluczowych do uwzględnienia z wyjątkiem.

StreamConsumedError

Błąd zgłaszany, jeśli próbujesz uzyskać dostęp do strumienia azure.core.rest.HttpResponse lub azure.core.rest.AsyncHttpResponse po użyciu strumienia odpowiedzi.

StreamClosedError

Błąd zgłaszany, jeśli próbujesz uzyskać dostęp do strumienia azure.core.rest.HttpResponse lub azure.core.rest.AsyncHttpResponse po zamknięciu strumienia odpowiedzi.

ResponseNotReadError

Wystąpił błąd podczas próby uzyskania dostępu do content elementu azure.core.rest.HttpResponse lub azure.core.rest.AsyncHttpResponse przed odczytaniem w bajtach odpowiedzi.

Konfiguracje

Podczas wywoływania metod niektóre właściwości można skonfigurować, przekazując jako argumenty kwargs.

Parametry Opis
Nagłówki Nagłówki żądania HTTP.
Request_id Identyfikator żądania, który ma zostać dodany do nagłówka.
user_agent Jeśli zostanie określony, zostanie to dodane przed ciągiem agenta użytkownika.
logging_enable Użyj polecenia , aby włączyć operację. Wartość domyślna to False.
Rejestratora Jeśli zostanie określony, będzie on używany do rejestrowania informacji.
response_encoding Kodowanie do użycia, jeśli jest znane z tej usługi (spowoduje wyłączenie automatycznego wykrywania).
serwery proxy Mapuje protokół lub protokół i nazwę hosta na adres URL serwera proxy.
raw_request_hook Funkcja wywołania zwrotnego. Zostanie wywołana na żądanie.
raw_response_hook Funkcja wywołania zwrotnego. Zostanie wywołana w odpowiedzi.
network_span_namer Obiekt wywołujący w celu dostosowania nazwy zakresu.
tracing_attributes Atrybuty do ustawienia na wszystkich utworzonych zakresach.
permit_redirects Czy klient zezwala na przekierowania. Wartość domyślna to True.
redirect_max Maksymalna dozwolona liczba przekierowań. Wartość domyślna to 30.
retry_total Całkowita liczba ponownych prób, które mają być dozwolone. Ma pierwszeństwo przed innymi liczbami. Wartość domyślna to 10.
retry_connect Ile błędów związanych z połączeniem należy ponowić próbę. Są to błędy zgłaszane przed wysłaniem żądania do serwera zdalnego, który zakładamy, że serwer nie wyzwolił przetwarzania żądania. Wartość domyślna to 3.
retry_read Ile razy ponowić próbę przy błędach odczytu. Te błędy są zgłaszane po wysłaniu żądania do serwera, więc żądanie może mieć skutki uboczne. Wartość domyślna to 3.
retry_status Ile razy należy ponowić próbę w przypadku nieprawidłowych kodów stanu. Wartość domyślna to 3.
retry_backoff_factor Współczynnik wycofywania stosowany między próbami po drugiej próbie (większość błędów jest usuwana natychmiast przez drugą próbę bez opóźnienia). Zasady ponawiania prób będą spać przez: {backoff factor} * (2 ** ({number of total retries} - 1)) sekundy. Jeśli backoff_factor wynosi 0,1, ponawianie próby będzie spać dla [0.0s, 0.2s, 0.4s, ...] między ponownymi próbami. Wartość domyślna to 0.8.
retry_backoff_max Maksymalny czas wolny od pracy. Wartość domyślna to 120 sekundy (2 minuty).
retry_mode Naprawiono lub wykładnicze opóźnienie między próbami, wartość domyślna to Exponential.
timeout Ustawienie limitu czasu dla operacji w sekundach jest wartością domyślną 604800(7 dni).
connection_timeout Pojedynczy zmiennoprzecinkowy w sekundach dla limitu czasu połączenia. Wartości domyślne to 300 sekundy.
read_timeout Pojedynczy zmiennoprzecinkowy w sekundach dla limitu czasu odczytu. Wartości domyślne to 300 sekundy.
connection_verify Weryfikacja certyfikatu SSL. Domyślnie włączony. Ustaw wartość Fałsz, aby wyłączyć, alternatywnie można ustawić ścieżkę do pliku CA_BUNDLE lub katalogu z certyfikatami zaufanych urzędów certyfikacji.
connection_cert Certyfikaty po stronie klienta. Możesz określić lokalny certyfikat, który ma być używany jako certyfikat po stronie klienta, jako pojedynczy plik (zawierający klucz prywatny i certyfikat) lub jako krotka ścieżek obu plików.
serwery proxy Protokół mapowania słownika lub protokół i nazwa hosta na adres URL serwera proxy.
Pliki cookie Obiekt Dict lub CookieJar do wysłania za pomocą polecenia Request.
connection_data_block_size Rozmiar bloku danych wysyłanych przez połączenie. Domyślnie do 4096 bajtów.

Transport asynchroniczny

Transport asynchroniczny został zaprojektowany tak, aby był opt-in. AioHttp jest jedną z obsługiwanych implementacji transportu asynchronicznego. Nie jest on instalowany domyślnie. Musisz zainstalować go oddzielnie.

Moduły udostępnione

MatchConditions

MatchConditions to wyliczenie opisujące warunki dopasowania.

class MatchConditions(Enum):
    Unconditionally = 1  # Matches any condition
    IfNotModified = 2  # If the target object is not modified. Usually it maps to etag=<specific etag>
    IfModified = 3  # Only if the target object is modified. Usually it maps to etag!=<specific etag>
    IfPresent = 4   # If the target object exists. Usually it maps to etag='*'
    IfMissing = 5   # If the target object does not exist. Usually it maps to etag!='*'

CaseInsensitiveEnumMeta

Metaklasa do obsługi wyliczenia bez uwzględniania wielkości liter.

from enum import Enum

from azure.core import CaseInsensitiveEnumMeta

class MyCustomEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    FOO = 'foo'
    BAR = 'bar'

Wartość sentinel o wartości null

Falsy obiekt sentinel, który ma być używany do określania atrybutów bez danych. Jest to serializowane do null przewodu.

from azure.core.serialization import NULL

assert bool(NULL) is False

foo = Foo(
    attr=NULL
)

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz artykuł Code of Conduct FAQ (Często zadawane pytania dotyczące kodeksu postępowania). Jeśli będziesz mieć jeszcze jakieś pytania lub komentarze, wyślij wiadomość e-mail na adres opencode@microsoft.com.