IBM Cloud Docs
Codici di errore API metadati istanza

Codici di errore API metadati istanza

Come illustrato in Gestione degli errori, l'API VPC Instance Metadata utilizza i codici di risposta standard HTTP per indicare l'esito di una richiesta. Ad esempio, una risposta 4xx-series indica un malfunzionamento che il client deve risolvere. Una risposta 5xx-series indica un malfunzionamento del servizio.

Inoltre, tutte le risposte 4xx e 5xx includono un oggetto di risposta di errore JSON che fornisce ulteriori informazioni sul problema. Queste informazioni includono una proprietà trace il cui valore potrebbe essere richiesto dal supporto IBM quando si risolve l'errore e una proprietà di array errors che contiene uno o più errori specifici correlati al problema. Ogni elemento nell'array errors utilizza il seguente schema JSON:

  • code- Stringa del codice di errore, ad esempio invalid_value
  • message- La stringa di testo che descrive il messaggio di errore, ad esempio, "Il valore fornito per il campo expires_in deve essere compreso tra 5 e 3600."
  • more_info- Se presente, un link alla documentazione su questo errore
  • target- Per gli errori che restituiscono una proprietà target nella risposta, esaminare le proprietà secondarie per gli indizi:
    • name del campo problematico, del parametro di query o dell'intestazione
    • type di input in cui è stato rilevato il problema, ad esempio un campo
    • value (se presente) il valore problematico all'interno del campo, del parametro di query o dell'intestazione

Oggetto di risposta di errore 400 JSON di esempio:

{
  "errors": [
    {
      "code": "invalid_value",
      "message": "The `expires_in` field must not exceed `3600`.",
      "more_info": "https://cloud.ibm.com/docs/vpc?topic=vpc-imd-configure-service",
      "target": {
        "name": "expires_in",
        "type": "field",
        "value": "7200"
      }
    }
  ],
  "status_code": 400,
  "trace": "e37872f6-f9a4-4084-a1a8-e56a1c8c8d3d"
}

I codici di errore possono essere aggiunti, rimossi o modificati nelle release successive, con aggiornamenti annunciati nel log di modifica dell'API dei metadati dell'istanza VPC. Se si utilizzano i codici di errore in modo programmatico, si consiglia di codificare in modo difensivo. Qualsiasi codice che controlla specifici codici di errore deve sempre avere una clausola "default" o "catch-all". Quindi può gestire il caso in cui il codice di errore restituito non corrisponde a nessuno di quelli previsti.

invalid_request

Utilizzato quando la richiesta non può essere analizzata, ad esempio quando la richiesta JSON non è corretta o il corpo della richiesta è troppo grande.

invalid_request il codice di errore può accompagnare un codice di stato 400 HTTP.

Messaggio di esempio: il corpo della richiesta non è corretto.

invalid_value

Utilizzato per valori non validi per intestazioni, parametri di query, parametri di percorso o proprietà (identificati da target). Include i valori interi non compresi nell'intervallo, i valori stringa con caratteri non validi, i valori di enumerazione non compresi nell'insieme elencato e così via.

invalid_value il codice di errore può accompagnare i seguenti codici di stato HTTP:

  • 404 per i parametri del percorso
  • 400 per tutti gli altri casi

Messaggio di esempio: il valore fornito per il campo expires_in deve essere compreso tra 5 e 3600.

missing_field

Utilizzato in tutte le situazioni in cui non viene fornita un'intestazione, un parametro di query o una proprietà richiesti.

missing_field il codice di errore può accompagnare un codice di stato 400 HTTP.

Messaggio di esempio: un ID profilo attendibile non è stato passato nel corpo della richiesta.

missing_value

Utilizzato per le intestazioni richieste mancanti, i parametri di query o le proprietà del corpo (identificate da target).

missing_value il codice di errore può accompagnare un codice di stato 400 HTTP.

Messaggio di esempio: un valore come ad esempio ibm deve essere fornito nell'intestazione Metadata-Flavor.

not_found

Utilizzato per intestazioni, parametri di query, parametri di percorso o proprietà del corpo (identificate da target) che sono sintatticamente validi ma fanno riferimento a una risorsa che non esiste.

not_found il codice di errore può accompagnare i seguenti codici di stato HTTP:

  • 404 per i parametri del percorso
  • 400 per tutti gli altri casi

Messaggio di esempio: gruppo di posizionamento non trovato.

profile_not_linked

Utilizzato quando un profilo attendibile non è collegato a un'istanza del server virtuale. Questo codice di errore viene restituito solo per il metodo POST /instance_identity/v1/iam_token.

profile_not_linked il codice di errore può accompagnare un codice di stato 400 HTTP.

Messaggio di esempio: l'istanza del server virtuale non è collegata al profilo attendibile specificato.

service_error

Utilizzato quando il client rileva un problema lato servizio.

service_error il codice di errore può accompagnare un codice di stato 500 HTTP.

Messaggio di esempio: si è verificato un errore interno.

unauthenticated

Utilizzato quando un token Bearer viene fornito nell'intestazione Authorization, ma il token è scaduto, in formato non corretto o altrimenti sintatticamente corretto ma non valido.

unauthenticated il codice di errore può accompagnare un codice di stato 401 HTTP.

Messaggio di esempio: il token fornito non è valido o è scaduto.

unauthorized

Utilizzato per intestazioni, parametri, percorsi o proprietà (identificati da target) che sono sintatticamente validi ma fanno riferimento a una risorsa su cui non si è autorizzati a operare nel modo richiesto.

unauthorized il codice di errore può accompagnare un codice di stato 403 HTTP.

Messaggio di esempio: il servizio metadati non è abilitato nell'istanza fornita.

unknown_field

Utilizzato quando viene fornita una proprietà o un parametro di query sconosciuto.

unknown_field il codice di errore può accompagnare un codice di stato 400 HTTP.

Messaggio di esempio: proprietà sconosciuta xyzzy specificata nel corpo della richiesta.