Delat Azure Core-klientbibliotek för Python – version 1.29.6
Azure Core tillhandahåller delade undantag och moduler för Python SDK-klientbibliotek. De här biblioteken följer Riktlinjerna för Azure SDK-design för Python .
Om du är klientbiblioteksutvecklare kan du läsa mer i referensen för klientbiblioteksutvecklare .
Källkod | Paket (Pypi) | Paket (Conda) | API-referensdokumentation
Friskrivning
Stöd för Azure SDK Python-paket för Python 2.7 har upphört den 1 januari 2022. Mer information och frågor finns i https://github.com/Azure/azure-sdk-for-python/issues/20691
Komma igång
Normalt behöver du inte installera Azure Core. det installeras när du installerar ett av klientbiblioteken med hjälp av det. Om du vill installera det explicit (till exempel för att implementera ditt eget klientbibliotek) kan du hitta det här.
Viktiga begrepp
Undantag för Azure Core-bibliotek
AzureError
AzureError är det grundläggande undantaget för alla fel.
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)
meddelande är ett meddelande (str) som ska associeras med undantaget.
args är eventuella ytterligare args som ska inkluderas med undantag.
kwargs är nyckelordsargument som ska inkluderas med undantaget. Använd nyckelordsfelet för att skicka ett internt undantag och continuation_token för en tokenreferens för att fortsätta en ofullständig åtgärd.
Följande undantag ärver från AzureError:
ServiceRequestError
Ett fel uppstod när en begäran skulle skickas till tjänsten. Ingen begäran skickades.
ServiceResponseError
Begäran skickades, men klienten kunde inte förstå svaret. Anslutningen kan ha överskriden tidsgräns. Dessa fel kan göras om för idempotent eller säkra åtgärder.
HttpResponseError
En begäran gjordes och en statuskod som inte lyckades togs emot från tjänsten.
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)
meddelande är HTTP-svarsfelmeddelandet (valfritt)
svar är HTTP-svaret (valfritt).
kwargs är nyckelordsargument som ska inkluderas med undantaget.
Följande undantag ärver från HttpResponseError:
DecodeError
Ett fel uppstod under svars-de-serialisering.
IncompleteReadError
Ett fel uppstod om peer stänger anslutningen innan vi har fått hela meddelandetexten.
ResourceExistsError
Ett felsvar med statuskoden 4xx. Detta genereras inte direkt av Azure Core-pipelinen.
ResourceNotFoundError
Ett felsvar som vanligtvis utlöses av ett 412-svar (för uppdatering) eller 404 (för get/post).
ResourceModifiedError
Ett felsvar med statuskoden 4xx, vanligtvis 412 Konflikt. Detta genereras inte direkt av Azure Core-pipelinen.
ResourceNotModifiedError
Ett felsvar med statuskod 304. Detta genereras inte direkt av Azure Core-pipelinen.
ClientAuthenticationError
Ett felsvar med statuskoden 4xx. Detta genereras inte direkt av Azure Core-pipelinen.
TooManyRedirectsError
Ett fel uppstod när det maximala antalet omdirigeringsförsök har uppnåtts. Den maximala mängden omdirigeringar kan konfigureras i RedirectPolicy.
class TooManyRedirectsError(HttpResponseError):
def __init__(self, history, *args, **kwargs):
self.history = history
message = "Reached maximum redirect attempts."
super(TooManyRedirectsError, self).__init__(message, *args, **kwargs)
historik används för att dokumentera de begäranden/svar som resulterade i omdirigerade begäranden.
args är eventuella ytterligare args som ska inkluderas med undantag.
kwargs är nyckelordsargument som ska inkluderas med undantaget.
StreamConsumedError
Ett fel uppstod om du försöker komma åt strömmen av azure.core.rest.HttpResponse
eller azure.core.rest.AsyncHttpResponse
när svarsströmmen har förbrukats.
StreamClosedError
Ett fel uppstod om du försöker komma åt strömmen för azure.core.rest.HttpResponse
eller azure.core.rest.AsyncHttpResponse
när svarsströmmen har stängts.
ResponseNotReadError
Ett fel uppstod om du försöker komma åt content
av azure.core.rest.HttpResponse
eller azure.core.rest.AsyncHttpResponse
innan du läser i svarets byte först.
Konfigurationer
När du anropar metoderna kan vissa egenskaper konfigureras genom att skicka in som kwargs-argument.
Parametrar | Description |
---|---|
Headers | HTTP-begäranderubrikerna. |
request_id | Begärande-ID:t som ska läggas till i huvudet. |
User_agent | Om detta anges läggs detta till framför användaragentsträngen. |
logging_enable | Använd för att aktivera per åtgärd. Standardvärdet är False . |
Logger | Om den anges används den för att logga information. |
response_encoding | Den kodning som ska användas om den är känd för den här tjänsten (inaktiverar automatisk identifiering). |
proxyservrar | Mappar protokoll eller protokoll och värdnamn till proxyns URL. |
raw_request_hook | Återanropsfunktion. Anropas på begäran. |
raw_response_hook | Återanropsfunktion. Anropas vid svar. |
network_span_namer | En anropsbar för att anpassa span-namnet. |
tracing_attributes | Attribut som ska anges för alla skapade intervall. |
permit_redirects | Om klienten tillåter omdirigeringar. Standardvärdet är True . |
redirect_max | Maximalt antal tillåtna omdirigeringar. Standardvärdet är 30 . |
retry_total | Totalt antal återförsök som ska tillåtas. Har företräde framför andra antal. Standardvärdet är 10 . |
retry_connect | Hur många anslutningsrelaterade fel som ska försöka igen. Det här är fel som uppstår innan begäran skickas till fjärrservern, vilket vi antar inte har utlöst servern för att bearbeta begäran. Standardvärdet är 3 . |
retry_read | Hur många gånger du försöker igen vid läsfel. Dessa fel utlöses efter att begäran skickades till servern, så begäran kan ha biverkningar. Standardvärdet är 3 . |
retry_status | Hur många gånger du försöker igen med felaktiga statuskoder. Standardvärdet är 3 . |
retry_backoff_factor | En backoff-faktor som ska tillämpas mellan försök efter det andra försöket (de flesta fel löses omedelbart med ett andra försök utan fördröjning). Återförsöksprincipen kommer att ligga i viloläge i: {backoff factor} * (2 ** ({number of total retries} - 1)) sekunder. Om backoff_factor är 0,1 kommer återförsöket att viloläge för [0,0s, 0,2s, 0,4s, ...] mellan återförsök. Standardvärdet är 0.8 . |
retry_backoff_max | Maximal ledighetstid. Standardvärdet är 120 sekunder (2 minuter). |
retry_mode | Fast eller exponentiell fördröjning mellan försök är Exponential standardvärdet . |
timeout | Tidsgränsinställningen för åtgärden i sekunder är 604800 standardvärdet s (7 dagar). |
connection_timeout | En enda flyttal i sekunder för tidsgränsen för anslutningen. Standardvärdet är 300 sekunder. |
read_timeout | En enda flyttal i sekunder för tidsgränsen för läsning. Standardvärdet är 300 sekunder. |
connection_verify | Verifiering av SSL-certifikat. Aktiverat som standard. Ställ in på Falskt om du vill inaktivera. Alternativt kan du ange sökvägen till en CA_BUNDLE fil eller katalog med certifikat för betrodda certifikatutfärdare. |
connection_cert | Certifikat på klientsidan. Du kan ange ett lokalt certifikat som ska användas som certifikat på klientsidan, som en enda fil (som innehåller den privata nyckeln och certifikatet) eller som en tuppel av båda filernas sökvägar. |
proxyservrar | Ordlistemappningsprotokoll eller protokoll och värdnamn till proxyns URL. |
Cookies | Dict- eller CookieJar-objekt som ska skickas Request med . |
connection_data_block_size | Blockstorleken för data som skickas över anslutningen. Standardvärdet är 4096 byte. |
Async-transport
Async-transporten är utformad för att vara anmäld. AioHttp är en av de implementeringar som stöds av asynkron transport. Den är inte installerad som standard. Du måste installera den separat.
Delade moduler
MatchConditions
MatchConditions är en uppräkning som beskriver matchningsvillkor.
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
En metaklass som stöder skiftlägesokänsliga uppräkningar.
from enum import Enum
from azure.core import CaseInsensitiveEnumMeta
class MyCustomEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta):
FOO = 'foo'
BAR = 'bar'
Null Sentinel-värde
Ett falsy sentinel-objekt som ska användas för att ange attribut utan data. Detta serialiseras till null
på tråden.
from azure.core.serialization import NULL
assert bool(NULL) is False
foo = Foo(
attr=NULL
)
Bidra
Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.
När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.
Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Du hittar mer information i Vanliga frågor om uppförandekod eller kontakta opencode@microsoft.com för ytterligare frågor eller kommentarer.
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för