¿Cómo activo los registros de CloudWatch para solucionar problemas con mi API REST o API de WebSocket de API Gateway?

6 minutos de lectura
0

Necesito depurar los errores con una API REST o una API de WebSocket de Amazon API Gateway que estoy desarrollando. ¿Cómo activo el registro para solucionar problemas de mi API?

Descripción breve

Para solucionar problemas con una API REST o una API de WebSocket de API Gateway, active el registro de ejecución y el registro de acceso mediante Amazon CloudWatch Logs.

Nota: Actualmente, las API HTTP solo admiten el registro de acceso y la configuración del registro es diferente para estas API. Para obtener más información, consulte Configurar el registro para una API HTTP.

Los registros de ejecución contienen información que puede utilizar para identificar y solucionar la mayoría de los errores de la API. Por ejemplo:

Los registros de acceso contienen detalles sobre quién accedió a su API y cómo accedieron a ella. También puede usar los registros para solucionar errores de la API. Para obtener más información sobre cada tipo de registro, consulte Formatos de registro de CloudWatch para API Gateway.

Resolución

Crear un rol de IAM para registrarse en CloudWatch

1.    En la consola de AWS Identity and Access Management (IAM), en el panel de navegación, seleccione Roles.

2.    En el panel Roles, elija Crear rol.

3.    En la página Crear rol, haga lo siguiente:
En el tipo de Entidad de confianza, elija AWS Service.
Para Caso práctico, elija API Gateway.
Seleccione el botón de opción API Gateway.
Seleccione Siguiente.

4.    Bajo Políticas de permisos, tenga en cuenta que la política gestionada por AWS AmazonAPIGatewayPushToCloudWatchLogs está seleccionada de forma predeterminada. La política tiene todos los permisos necesarios.

5.    Seleccione Siguiente.

6.    En Nombrar, revisar y crear, haga lo siguiente:
En Nombre de rol, introduzca un nombre para el rol.
(Opcional) Para Descripción del rol, edite la descripción según sus preferencias.
(Opcional) Añada etiquetas.
Elija Crear rol.

7.    En el panel Roles, en la barra de búsqueda, introduzca el nombre del rol que ha creado. A continuación, elija el rol en los resultados de la búsqueda.

8.    En el panel Resumen, copie el Rol ARN. Necesitará este nombre de recurso de Amazon (ARN) en la siguiente sección.

Para obtener más información, consulte Permisos para el registro de CloudWatch.

Agregar el rol de IAM en la consola de API Gateway

Nota: Si está desarrollando varias API en diferentes regiones de AWS, complete estos pasos en cada región.

1.    En la consola de API Gateway, en el panel de API, elija el nombre de la API que ha creado. Se trata de una API REST o una API de WebSocket (no una API HTTP).

2.    En el panel de navegación de la izquierda, en la parte inferior, debajo de la sección Certificados de cliente, elija Configuraciones.

3.    En Configuraciones, para ARN del rol de registro de CloudWatch, pegue el ARN del rol de IAM que copió.

4.    Seleccione Guardar.
Nota: La consola no confirma que el ARN esté guardado.

Encender el registro para su API y su fase

1.    En la consola de API Gateway, en el panel de APIs, elija el nombre de la API que ha creado.

2.    En el panel de navegación de la izquierda, elija Etapa. A continuación, selecciona el nombre de la etapa que desee.

3.    Seleccione la pestaña Registros/Rastreo.

4.    En la pestaña Registros/Rastreo, en Configuración de CloudWatch, haga lo siguiente para activar el registro de ejecución:
Active la casilla Habilitar registros de CloudWatch.
En Nivel de registro, elija INFO para generar registros de ejecución para todas las solicitudes. O bien, elija ERROR para generar registros de ejecución únicamente para las solicitudes a su API que generen un error.
Para las API REST, active la casilla Registrar todos los datos de las solicitudes/respuestas. O bien, en el caso de las API de WebSocket, active la casilla Registrar todos los datos de mensajes.

5.    En Registro de acceso personalizado, haga lo siguiente para activar el registro de acceso:
Elija la casilla Habilitar registro de acceso.
Para Destino del Registro de Acceso ARN, introduzca el ARN de un Amazon Kinesis Data Firehose (esto solo se admite en las API REST) o de un grupo de registros de CloudWatch.

Introduzca unFormato de registro. Como guía, elija CLF, JSON, XML o CSV para ver un ejemplo en ese formato.

6.    Seleccione Guardar cambios.
Nota: La consola no confirma que se haya guardado la configuración.

Para obtener más información, consulte Configurar el registro de API de CloudWatch mediante la consola de API Gateway.

Pruebe la configuración de registro

1.    Envíe una nueva solicitud a su API mediante la aplicación cliente o una herramienta como la aplicación Postman o wscat (para las API de WebSocket).

2.    En la consola de CloudWatch, en el panel de navegación de la izquierda, en Registros, seleccione Grupos de registro.

3.    En la lista de Grupos de registro, elija el grupo de registro de la API que está depurando.
Para las API REST, el nombre del grupo de registro tiene el siguiente formato: API-Gateway-Execution-Logs_apiId/stageName.
Para las API de WebSocket, el nombre del grupo de registro tiene el siguiente formato: /aws/apigateway/apiId/stageName.
Nota: Los registros de acceso se encuentran en el grupo de registro cuyo ARN ya lo especificó al activar el registro de acceso.

4.    En la lista de Secuencias de registro, elija la secuencia de registros con la Hora del último evento más reciente. Esta selección le permitirá ver los mensajes con los detalles de ejecución o acceso de su solicitud.

Para obtener más información, consulte Ver eventos de registro de API Gateway en la consola de CloudWatch.


Información relacionada

Configuración del registro de CloudWatch para una API REST en API Gateway

Plantilla de mapeo de API Gateway y referencia de variable de registro de acceso

Monitoreo de la ejecución de la API REST con métricas de Amazon CloudWatch

Supervisión de la ejecución de la API WebSocket con métricas de CloudWatch