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 content
azure.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 604800 s (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 Request soll. |
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.
Azure SDK for Python