Share via


Freigegebene Azure Core-Clientbibliothek für Python – Version 1.29.6

Azure Core bietet freigegebene Ausnahmen und Module für Python SDK-Clientbibliotheken. Diese Bibliotheken folgen den Azure SDK-Entwurfsrichtlinien für Python .

Wenn Sie ein Clientbibliotheksentwickler sind, finden Sie weitere Informationen in der Clientbibliotheksentwicklerreferenz .

Quellcode | Paket (Pypi) | Paket (Conda) | API-Referenzdokumentation

Haftungsausschluss

Die Unterstützung von Python-Paketen für Das Azure SDK für Python 2.7 wurde am 01. Januar 2022 eingestellt. Weitere Informationen und Antworten finden Sie unter https://github.com/Azure/azure-sdk-for-python/issues/20691.

Erste Schritte

In der Regel müssen Sie azure core nicht installieren. Sie wird installiert, wenn Sie eine der Clientbibliotheken installieren, die sie verwenden. Falls Sie sie explizit installieren möchten (z. B. um Eine eigene Clientbibliothek zu implementieren), finden Sie sie hier.

Wichtige Begriffe

Azure Core-Bibliotheksausnahmen

AzureError

AzureError ist die Basis-Ausnahme für alle Fehler.

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)

message ist eine beliebige Nachricht (str), die der Ausnahme zugeordnet werden soll.

args sind alle zusätzlichen Argumente, die mit Ausnahme eingeschlossen werden sollen.

Kwargs sind Schlüsselwort (keyword) Argumente, die mit Ausnahme eingeschlossen werden sollen. Verwenden Sie den Schlüsselwort (keyword)-Fehler, um eine interne Ausnahme zu übergeben, und continuation_token für einen Tokenverweis, um einen unvollständigen Vorgang fortzusetzen.

Die folgenden Ausnahmen erben von AzureError:

ServiceRequestError

Beim Versuch, eine Anforderung an den Dienst zu stellen, ist ein Fehler aufgetreten. Es wurde keine Anforderung gesendet.

ServiceResponseError

Die Anforderung wurde gesendet, aber der Client konnte die Antwort nicht verstehen. Bei der Verbindung ist möglicherweise ein Timeout aufgetreten. Diese Fehler können für idempotente oder sichere Vorgänge wiederholt werden.

HttpResponseError

Es wurde eine Anforderung gestellt, und es wurde eine nicht erfolgreiche status Code vom Dienst empfangen.

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)

Message ist die HTTP-Antwortfehlermeldung (optional)

response ist die HTTP-Antwort (optional).

Kwargs sind Schlüsselwort (keyword) Argumente, die mit Ausnahme eingeschlossen werden sollen.

Die folgenden Ausnahmen erben von HttpResponseError:

DecodeError

Ein Fehler, der während der Deserialisierung der Antwort ausgelöst wird.

IncompleteReadError

Ein Fehler wird ausgelöst, wenn der Peer die Verbindung schließt, bevor wir den vollständigen Nachrichtentext erhalten haben.

ResourceExistsError

Eine Fehlerantwort mit status Code 4xx. Dies wird nicht direkt von der Azure-Kernpipeline ausgelöst.

ResourceNotFoundError

Eine Fehlerantwort, die in der Regel durch eine 412-Antwort (für update) oder 404 (für get/post) ausgelöst wird.

ResourceModifiedError

Eine Fehlerantwort mit status Code 4xx, in der Regel 412 Konflikt. Dies wird nicht direkt von der Azure-Kernpipeline ausgelöst.

ResourceNotModifiedError

Eine Fehlerantwort mit status Code 304. Dies wird nicht direkt von der Azure-Kernpipeline ausgelöst.

ClientAuthenticationError

Eine Fehlerantwort mit status Code 4xx. Dies wird nicht direkt von der Azure-Kernpipeline ausgelöst.

TooManyRedirectsError

Ein Fehler, der ausgelöst wird, wenn die maximale Anzahl von Umleitungsversuchen erreicht wird. Die maximale Anzahl von Umleitungen kann in der RedirectPolicy konfiguriert werden.

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

Der Verlauf wird verwendet, um die Anforderungen/Antworten zu dokumentieren, die zu umgeleiteten Anforderungen geführt haben.

args sind alle zusätzlichen Argumente, die mit Ausnahme eingeschlossen werden sollen.

Kwargs sind Schlüsselwort (keyword) Argumente, die mit Ausnahme eingeschlossen werden sollen.

StreamConsumedError

Ein Fehler, der ausgelöst wird, wenn Sie versuchen, auf den Stream von azure.core.rest.HttpResponse oder azure.core.rest.AsyncHttpResponse zuzugreifen, nachdem der Antwortdatenstrom verbraucht wurde.

StreamClosedError

Ein Fehler, der ausgelöst wird, wenn Sie versuchen, auf den Stream des azure.core.rest.HttpResponse oder azure.core.rest.AsyncHttpResponse zuzugreifen, nachdem der Antwortdatenstrom geschlossen wurde.

ResponseNotReadError

Ein Fehler, der ausgelöst wird, wenn Sie versuchen, auf oder contentazure.core.rest.HttpResponse zuzugreifen, azure.core.rest.AsyncHttpResponse bevor Sie zuerst die Bytes der Antwort lesen.

Configurations

Beim Aufrufen der Methoden können einige Eigenschaften konfiguriert werden, indem sie als kwargs-Argumente übergeben werden.

Parameter BESCHREIBUNG
headers Die HTTP-Anforderungsheader.
request_id Die Anforderungs-ID, die dem Header hinzugefügt werden soll.
user_agent Falls angegeben, wird dies vor der Benutzer-Agent-Zeichenfolge hinzugefügt.
logging_enable Verwenden Sie, um pro Vorgang zu aktivieren. Wird standardmäßig auf False festgelegt.
Protokollierungstool Falls angegeben, wird es zum Protokollieren von Informationen verwendet.
response_encoding Die zu verwendende Codierung, wenn sie für diesen Dienst bekannt ist (deaktiviert die automatische Erkennung).
Proxys Ordnet Protokoll oder Protokoll und Hostname der URL des Proxys zu.
raw_request_hook Rückruffunktion. Wird bei Anforderung aufgerufen.
raw_response_hook Rückruffunktion. Wird bei der Antwort aufgerufen.
network_span_namer Ein Aufruf, der zum Anpassen des Spannamens aufgerufen werden kann.
tracing_attributes Attribute, die für alle erstellten Spannen festgelegt werden sollen.
permit_redirects Gibt an, ob der Client Umleitungen zulässt. Der Standardwert lautet True.
redirect_max Die maximal zulässigen Umleitungen. Der Standardwert lautet 30.
retry_total Gesamtanzahl der zuzulassenden Wiederholungsversuche. Hat Vorrang vor anderen Zählungen. Der Standardwert ist 10.
retry_connect Wie viele Verbindungsfehler wiederholt werden sollen. Hierbei handelt es sich um Fehler, die ausgelöst werden, bevor die Anforderung an den Remoteserver gesendet wird. Wir gehen davon aus, dass der Server die Verarbeitung der Anforderung nicht ausgelöst hat. Der Standardwert ist 3.
retry_read Gibt an, wie oft bei Lesefehlern wiederholt werden soll. Diese Fehler werden ausgelöst, nachdem die Anforderung an den Server gesendet wurde, sodass die Anforderung Nebenwirkungen haben kann. Der Standardwert ist 3.
retry_status Gibt an, wie oft bei fehlerhaften status Codes wiederholt werden soll. Der Standardwert ist 3.
retry_backoff_factor Ein Backofffaktor, der zwischen den Versuchen nach dem zweiten Versuch angewendet werden soll (die meisten Fehler werden sofort durch einen zweiten Versuch ohne Verzögerung behoben). Die Wiederholungsrichtlinie wird für: {backoff factor} * (2 ** ({number of total retries} - 1)) Sekunden in den Ruhezustand versetzt. Wenn der backoff_factor 0,1 ist, wird der Wiederholungsversuch für [0.0s, 0.2s, 0.4s, ...] zwischen Wiederholungen in den Ruhezustand versetzt. Standardwert: 0.8.
retry_backoff_max Die maximale Backoffzeit. Der Standardwert ist 120 Sekunden (2 Minuten).
retry_mode Fixe oder exponentielle Verzögerung zwischen Versuchen, Standardwert ist Exponential.
timeout Timeouteinstellung für den Vorgang in Sekunden, Standardwert ist 604800s (7 Tage).
connection_timeout Ein einzelner Float in Sekunden für das Verbindungstimeout. Der Standardwert ist 300 Sekunden.
read_timeout Ein einzelner Float in Sekunden für das Lesetimeout. Der Standardwert ist 300 Sekunden.
connection_verify SSL-Zertifikatüberprüfung. Standardmäßig aktiviert. Zum Deaktivieren auf False festgelegt, kann alternativ auf den Pfad einer CA_BUNDLE Datei oder eines Verzeichnisses mit Zertifikaten vertrauenswürdiger Zertifizierungsstellen festgelegt werden.
connection_cert Clientseitige Zertifikate. Sie können ein lokales Zertifikat angeben, das als clientseitiges Zertifikat, als einzelne Datei (mit dem privaten Schlüssel und dem Zertifikat) oder als Tupel der Pfade beider Dateien verwendet werden soll.
Proxys Wörterbuchzuordnungsprotokoll oder Protokoll und Hostname zur URL des Proxys.
Cookies Dict- oder CookieJar-Objekt, das mit gesendet werden Requestsoll.
connection_data_block_size Die Blockgröße der Daten, die über die Verbindung gesendet werden. Der Standardwert ist 4096 Byte.

Asynchroner Transport

Der asynchrone Transport ist für die Aktivierung konzipiert. AioHttp ist eine der unterstützten Implementierungen des asynchronen Transports. Sie ist nicht standardmäßig installiert. Sie müssen es separat installieren.

Freigegebene Module

MatchConditions

MatchConditions ist eine Enumeration zur Beschreibung von Übereinstimmungsbedingungen.

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

Eine Metaklasse, um Enumerationen ohne Berücksichtigung der Groß-/Kleinschreibung zu unterstützen.

from enum import Enum

from azure.core import CaseInsensitiveEnumMeta

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

Null Sentinel-Wert

Ein gefälschtes Sentinel-Objekt, das verwendet werden soll, um Attribute ohne Daten anzugeben. Dies wird auf der Leitung in null serialisiert.

from azure.core.serialization import NULL

assert bool(NULL) is False

foo = Foo(
    attr=NULL
)

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Kommentare haben.