Udostępnij za pośrednictwem


Kody stanu i błędów

Operacje interfejsu API REST dla usługi Azure Storage zwracają standardowe kody stanu HTTP, zgodnie z definicją kodu stanu HTTP/1.1.

Operacje interfejsu API mogą również zwracać szczegółowe informacje o błędach zdefiniowane przez usługę. Te informacje o błędzie są zwracane w treści odpowiedzi.

Treść odpowiedzi na błąd jest zgodna z podstawowym formatem pokazanym tutaj. Element code wskazuje ciąg kodu błędu, podczas gdy message element wskazuje ciąg komunikatu o błędzie.

<?xml version="1.0" encoding="utf-8"?>  
<Error>  
  <Code>string-value</Code>  
  <Message>string-value</Message>  
</Error>  

W przypadku wersji 2017-07-29 lub nowszej operacje interfejsu API, które zakończyły się niepowodzeniem, zwracają również ciąg kodu błędu usługi Azure Storage w nagłówku odpowiedzi.

Nagłówek odpowiedzi Opis
x-ms-error-code Wartość wskazująca ciąg kodu błędu.

Konkretna odpowiedź na błąd może również zawierać szczegółowe informacje o błędzie, aby zapewnić deweloperowi więcej informacji. Na przykład następująca odpowiedź na błąd wskazuje nieprawidłowy parametr zapytania określony w identyfikatorze URI żądania i zawiera dodatkowe informacje o nazwie i wartości nieprawidłowego parametru oraz przyczynie błędu.

<?xml version="1.0" encoding="utf-8"?>  
<Error>  
  <Code>InvalidQueryParameterValue</Code>  
  <Message>Value for one of the query parameters specified in the request URI is invalid.</Message>  
  <QueryParameterName>popreceipt</QueryParameterName>  
  <QueryParameterValue>33537277-6a52-4a2b-b4eb-0f905051827b</QueryParameterValue>  
  <Reason>invalid receipt format</Reason>  
</Error>  

W przypadku wersji 2024-08-04 lub nowszej odpowiedź na błąd będzie zawierać szczegółowe informacje o błędzie, gdy podpisany typ zasobu sygnatury dostępu współdzielonego konta nie jest zgodny z zasobem, do którego uzyskuje się dostęp. Na przykład następująca odpowiedź o błędzie wskazuje, że podpisany typ zasobu "o" jest wymagany do wykonania operacji.

<?xml version="1.0" encoding="utf-8"?>
<Error>
  <Code>AuthorizationResourceTypeMismatch</Code>
  <Message>This request is not authorized to perform this operation using this resource type. RequestId:42a48a49-201e-0092-3770-a7ea70000000 Time:2024-05-16T09:04:16.3226200Z</Message>
  <ExtendedErrorDetail>SignedResourceTypes 'o' is required to perform this operation.</ExtendedErrorDetail>
</Error>

Poniższa lista artykułów zawiera kolekcje kodów błędów, które mogą okazać się przydatne:

Kopiowanie odpowiedzi na błąd interfejsu API

Odpowiedź na błąd dla interfejsów API kopiowania jest zgodna z tym samym formatem, jak wspomniano wcześniej. Treść odpowiedzi na błąd zawiera code element ciągu kodu błędu i element wskazujący message ciąg komunikatu o błędzie.

W przypadku wersji 2024-02-04 i nowszych odpowiedź na błąd może zawierać szczegółowy błąd, jeśli operacja kopiowania zakończy się niepowodzeniem z powodu problemu ze źródłem kopiowania, pod warunkiem, że niepowodzenie ze źródła zwraca te informacje. Odpowiedź może obejmować CopySourceStatusCode wskazanie kodu stanu operacji kopiowania źródła, CopySourceErrorCode określenie zwróconego x-ms-error-code w odpowiedzi na błąd źródła kopiowania i CopySourceErrorMessage wskazanie odpowiedniego komunikatu o błędzie.

<?xml version="1.0" encoding="utf-8"?>  
<Error>  
  <Code>CannotVerifyCopySource</Code>  
  <Message> The specified blob doesn’t exist.
      RequestId:de1e2279-b01e-0000-5f26-5c4741000000
      Time:2023-03-21T18:52:10.1018932Z</Message>
  <CopySourceStatusCode> 404 </CopySourceStatusCode>
  <CopySourceErrorCode> BlobNotFound </CopySourceErrorCode>
  <CopySourceErrorMessage> The specified blob doesn’t exist </CopySourceErrorMessage> 
</Error>  

W przypadku wersji 2024-02-04 i nowszych usługa Azure Storage zwraca kod stanu kopiowania źródła i kod błędu w nagłówku odpowiedzi, jeśli zostaną odebrane w niepowodzeniu źródła kopiowania.

Nagłówek odpowiedzi Opis
x-ms-copy-source-status-code Wartość wskazująca kod stanu niepowodzenia źródła kopiowania.
x-ms-copy-source-error-code Wartość wskazująca ciąg kodu błędu zwrócony z błędu źródła kopiowania.

Następujące interfejsy API kopiowania zwracają te szczegóły:

Odpowiedzi na błędy dla usługi Table Storage

Odpowiedzi na błędy dla usługi Table Storage są zgodne z formatem błędu opisanym w sekcji 19 specyfikacji OData. Szczegółowe informacje o błędzie mogą być dołączone, ale odpowiedź na błąd zawsze jest zgodna ze OData specyfikacją.

Odpowiedzi na błędy usługi Batch są podobne do standardowych odpowiedzi na błędy usługi Table Storage. Aby uzyskać więcej informacji, zobacz Wykonywanie transakcji grupy jednostek.

Uwaga / Notatka

JSON jest zalecanym formatem ładunku dla usługi Table Storage. Jest to jedyny format obsługiwany w wersji 2015-12-11 i nowszych.

W poniższym przykładzie przedstawiono podstawową treść błędu w formacie JSON (wersja 2013-08-15 i nowsze):

{"odata.error":{"code":"ResourceNotFound","message":{"lang":"en-US","value":"The specified resource does not exist.\nRequestId:102a2b55-eb35-4254-9daf-854db78a47bd\nTime:2014-06-04T16:18:20.4307735Z"}}}  
  

Poniższy przykład przedstawia podstawową treść błędu w formacie Atom (wersje 2015-12-11 i starsze):

<?xml version="1.0" encoding="utf-8"?>  
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">  
  <code>ResourceNotFound</code>  
  <message xml:lang="en-US">The specified resource does not exist.  
RequestId:e288ba1e-f5dd-4014-9e09-f1263d223dec  
Time:2014-06-04T16:18:20.7088013Z</message>  
</error>  
  

Zobacz także

Rozwiązywanie problemów z operacjami interfejsu API
Wyliczenie HttpStatusCode
Usługi magazynowania REST