IBM Cloud Docs
Códigos de error de API de metadatos de instancia

Códigos de error de API de metadatos de instancia

Como se explica en el apartado de Gestión de errores, la API de metadatos de instancias de VPC utiliza códigos de respuesta estándar de HTTP para indicar el resultado de una solicitud. Por ejemplo, una respuesta de la serie " 4xx " indica un fallo que el cliente debe resolver. Una respuesta de series de 5xx indica un error de servicio.

Además, todas las respuestas 4xx y 5xx incluyen un objeto de respuesta de error JSON que proporciona información adicional sobre el problema. Esta información incluye una propiedad " trace " cuyo valor podría ser solicitado por el servicio de asistencia de IBM cuando resuelvan el fallo, y una propiedad de matriz " errors " que contiene uno o más errores específicos relacionados con el problema. Cada elemento de la matriz errors utiliza el siguiente esquema JSON:

  • code: Cadena de código de error, como invalid_value
  • message-Serie de texto que describe el mensaje de error, por ejemplo, "El valor proporcionado para el campo expires_in debe estar entre 5 y 3600."
  • more_info: Si está presente, es un enlace a la documentación sobre este error
  • target- Para los errores que devuelven una propiedad " target " en la respuesta, revise las subpropiedades en busca de pistas:
    • name del campo, parámetro de consulta o cabecera problemáticos
    • type de entrada donde se ha encontrado el problema como, por ejemplo, un campo
    • value: Si está presente, es el valor problemático dentro del campo, parámetro de consulta o cabecera

Ejemplo de objeto de respuesta JSON de 400:

{
  "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"
}

Los códigos de error se pueden añadir, eliminar o modificar en versiones posteriores, con actualizaciones anunciadas en el registro de cambios de la API de metadatos de instancias de VPC. Si utiliza códigos de error mediante programación, le recomendamos que codifique de forma defensiva. Cualquier código que compruebe códigos de error específicos siempre debe tener una cláusula "default" o "catch-all". Por lo tanto, puede manejar el caso en el que el código de error devuelto no coincide con ninguno de los que el código esperaba.

invalid_request

Se utiliza cuando no se puede analizar la petición, por ejemplo, cuando la petición JSON está mal formada o su cuerpo es demasiado grande.

Un código de error de invalid_request puede acompañar a un código de estado HTTP de 400.

Mensaje de ejemplo: El cuerpo de la petición está mal formado.

invalid_value

Se utiliza en valores no válidos de cabeceras, parámetros de consulta, parámetros de ruta o propiedades (identificados por target). Incluye valores enteros que están fuera de rango, valores de cadena que tienen caracteres no válidos, valores de enumeración que se salen del conjunto listado, etc.

El código de error de invalid_value puede acompañar los siguientes códigos de estado HTTP:

  • 404 en parámetros de ruta
  • 400 en todos los demás casos

Mensaje de ejemplo: El valor proporcionado en el campo expires_in tiene que estar comprendido entre 5 y 3600.

missing_field

Se utiliza en cualquier situación en la que no se proporcione una cabecera, un parámetro de consulta o una propiedad obligatorios.

Un código de error de missing_field puede acompañar a un código de estado HTTP de 400.

Mensaje de ejemplo: No se ha pasado un ID de perfil de confianza en el cuerpo de la petición.

missing_value

Se utiliza en las cabeceras necesarias, los parámetros de consulta o las propiedades del cuerpo que faltan (identificados por target).

Un código de error de missing_value puede acompañar a un código de estado HTTP de 400.

Mensaje de ejemplo: Hay que proporcionar un valor como, por ejemplo, ibm en la cabecera Metadata-Flavor.

not_found

Se utiliza en cabeceras, parámetros de consulta, parámetros de ruta o propiedades de cuerpo (identificados por target) que son válidos sintácticamente, pero que hacen referencia a un recurso inexistente.

El código de error de not_found puede acompañar los siguientes códigos de estado HTTP:

  • 404 en parámetros de ruta
  • 400 en todos los demás casos

Mensaje de ejemplo: Grupo de colocación no encontrado.

profile_not_linked

Se utiliza cuando un perfil de confianza no está vinculado a una instancia de servidor virtual. Este código de error solo se devuelve en el método POST /instance_identity/v1/iam_token.

Un código de error de profile_not_linked puede acompañar a un código de estado HTTP de 400.

Mensaje de ejemplo: La instancia de servidor virtual no está vinculada al perfil de confianza especificado.

service_error

Se utiliza cuando el cliente encuentra un problema del lado del servicio.

Un código de error de service_error puede acompañar a un código de estado HTTP de 500.

Mensaje de ejemplo: Se ha producido un error interno.

unauthenticated

Se utiliza cuando se proporciona un token portador en la cabecera Authorization, pero está caducado, mal formado o bien es sintácticamente correcto, pero no es válido.

Un código de error de unauthenticated puede acompañar a un código de estado HTTP de 401.

Mensaje de ejemplo: El token proporcionado no es válido o ha caducado.

unauthorized

Se utiliza en cabeceras, parámetros, rutas o propiedades (identificados por target) que son válidos sintácticamente, pero que hacen referencia a un recurso que no está autorizado a operar de la forma solicitada.

Un código de error de unauthorized puede acompañar a un código de estado HTTP de 403.

Mensaje de ejemplo: El servicio de metadatos no está habilitado en la instancia proporcionada.

unknown_field

Se utiliza cuando se proporciona una propiedad o un parámetro de consulta desconocido.

Un código de error de unknown_field puede acompañar a un código de estado HTTP de 400.

Mensaje de ejemplo: Se ha especificado la propiedad desconocida xyzzy en el cuerpo de la solicitud.