Adición de una respuesta de puerta de enlace
Escenario
Se muestra una respuesta de gateway si API Gateway no puede procesar una solicitud de API. API Gateway proporciona un conjunto de respuestas predeterminadas y también le permite crear respuestas de gateway con códigos de estado y contenido personalizados, en la página API Groups. El contenido de la respuesta debe estar en formato JSON.
Por ejemplo, el contenido de una respuesta de puerta de enlace predeterminada es el siguiente:
{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}
Puede agregar una respuesta con el siguiente contenido:
{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}
Puede agregar más campos o eliminar campos existentes del cuerpo de JSON.
- Las respuestas predeterminadas de la puerta de enlace proporcionadas por API Gateway se pueden editar.
- Puede crear respuestas de puerta de enlace y configurar diferentes respuestas para las API en el mismo grupo de API.
- No se puede cambiar el tipo de respuesta de puerta de enlace. Para más detalles, consulte Tipos de respuesta.
- Las respuestas de la puerta de enlace pueden contener las variables de contexto de la puerta de enlace de la API (comenzando con $context). Para más detalles, consulte Variables de contexto de API Gateway.
Prerrequisitos
Ha creado un grupo de API.
Procedimiento
- Inicie sesión en la consola de gestión.
- Haga clic en en la esquina superior izquierda y seleccione una región.
- Haz clic en en la esquina superior izquierda y elige API Gateway.
- Elija un tipo de puerta de enlace en el panel de navegación.
- Shared Gateway: Puede crear y gestionar API de inmediato. Se le facturará en función del número de llamadas API.
- Dedicated Gateways: puede crear y gestionar API después de comprar una puerta de enlace. Se le facturará en función de la duración del uso del gateway.
- En el panel de navegación, elija API Publishing > API Groups.
- Busque el grupo de API para el que desea crear o modificar una respuesta de puerta de enlace y haga clic en el nombre del grupo para ir a la página de detalles del grupo de API.
- Haga clic en la pestaña Gateway Responses y cree una respuesta de puerta de enlace.
- Para editar una respuesta, haga clic en el botón Edit en la esquina superior derecha y modifique el código de estado y el contenido de la respuesta.
- Sólo puede modificar el código de estado y el contenido de una respuesta de puerta de enlace predeterminada o personalizada, y no puede cambiar el tipo de respuesta.
- La información de error y otros detalles de respuesta se pueden obtener usando variables. Para obtener más información sobre las variables admitidas, consulte Tabla 2.
Tipos de respuesta
Tabla 1 enumera los tipos de respuesta admitidos por API Gateway. Puede definir códigos de estado de las respuestas para cumplir con sus requisitos de servicio.
Nombre de la respuesta |
Código de estado predeterminado |
Descripción |
---|---|---|
Access Denied |
403 |
Acceso denegado. Por ejemplo, se activa la política de control de acceso o se detecta un ataque. |
Authorizer Configuration Error |
500 |
Se ha producido un error de autorizador personalizado. Por ejemplo, la comunicación falló o se devolvió una respuesta de error. |
Authorizer Failed |
500 |
Error en la autorización personalizada. |
Incorrect Identity Source |
401 |
Falta la fuente de identidad del autorizador personalizado o no es válida. |
Authentication Failure |
401 |
Error en la autenticación de IAM o de la aplicación. |
Identity Source Not Found |
401 |
No se ha especificado ningún origen de identidad. |
Backend Timeout |
504 |
Se agotó el tiempo de espera de la comunicación con el servicio backend. |
Backend Unavailable |
502 |
El servicio de backend no está disponible debido a un error de comunicación. |
Default 4XX |
- |
Ocurrió otro error 4XX. |
Default 5XX |
- |
Ocurrió otro error 5XX. |
No API Found |
404 |
No se encuentra ninguna API. |
Incorrect Request Parameters |
400 |
Los parámetros de solicitud son incorrectos o el método HTTP no es compatible. |
Request Throttled |
429 |
La solicitud fue rechazada debido a la limitación de la solicitud. |
Unauthorized App |
401 |
La aplicación que está usando no tiene autorización para llamar a la API. |
Variables de contexto de API Gateway
Variable |
Descripción |
---|---|
$context.apiId |
ID de API. |
$context.appId |
ID de la aplicación que llama a la API. |
$context.requestId |
ID de solicitud generado cuando se llama a la API. |
$context.stage |
Entorno de implementación en el que se llama a la API. |
$context.sourceIp |
Dirección IP de origen del llamador API. |
$context.authorizer.frontend.property |
Valores de los pares de valor-atributo especificados asignados al contexto en la respuesta del autorizador personalizado de frontend |
$context.authorizer.backend.property |
Valores de los pares de valor-atributo especificados asignados al contexto en la respuesta del autorizador personalizado de back-end |
$context.error.message |
Mensaje de error. |
$context.error.code |
Código de error. |
$context.error.type |
Tipo de error. |