¿Cómo se puede solucionar el problema que supone la falta de registros de CloudWatch para las API de REST de API Gateway?

Actualización más reciente: 30 de agosto de 2022

He activado el registro de Amazon CloudWatch para Amazon API Gateway, pero no pude encontrar ningún registro. ¿Cómo se obtienen los registros de CloudWatch para solucionar los problemas de las API de REST de API Gateway?

Descripción breve

Puede utilizar el registro de CloudWatch para ayudar a depurar problemas relacionados con la ejecución de solicitudes o el acceso de clientes a la API. El registro de CloudWatch incluye el registro de ejecuciones y de accesos.

En el caso de los registros de ejecuciones, API Gateway administra los registros de CloudWatch, incluida la creación de grupos de registros y secuencias de registros. En el caso de los registros de acceso, puede crear grupos de registro propios o elegir grupos de registro existentes.

No todos los errores del cliente rechazados por API Gateway se registran en los registros de ejecuciones. Por ejemplo, un cliente que realiza una solicitud de API a una ruta de recursos incorrecta de la API de REST devuelve una respuesta 403 “Falta el token de autenticación”. Este tipo de respuesta no se registra en los registros de ejecuciones. Utilice los registros de accesos de CloudWatch para solucionar los errores del lado del cliente.

Para obtener más información, consulte Formatos de registro de CloudWatch para API Gateway.

Es posible que API Gateway no genere registros para:

  • 413 Errores de entidad de solicitud demasiado grande.
  • Excesivos errores 429 Demasiadas solicitudes.
  • Errores de la serie 400 de solicitudes enviadas a un dominio personalizado que no tiene asignación de API.
  • Errores de la serie 500 causados por fallos internos.

Para más información, consulte Supervisión de las API de REST.

Resolución

Verificar los permisos de API Gateway para el registro de CloudWatch

Para activar los Registros de CloudWatch, debe conceder a API Gateway permiso para leer y escribir registros en CloudWatch para la cuenta. La política administrada AmazonAPIGatewayPushToCloudWatchLogs cuenta con los permisos necesarios.

Cree un rol de AWS Identity and Access Management (IAM) con apigateway.amazonaws.com como entidad de confianza. A continuación, asocie la siguiente política al rol de IAM, y establezca el ARN del rol de IAM en la propiedad cloudWatchRoleArn para la cuenta de AWS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:PutLogEvents",
        "logs:GetLogEvents",
        "logs:FilterLogEvents"
      ],
      "Resource": "*"
    }
  ]
}

Asegúrese de que:

  • AWS Security Token Service (AWS STS) está activado en la región de AWS. Para obtener más información, consulte Administrar AWS STS en una región de AWS.
  • El rol de IAM se encuentra activado en todas las regiones de AWS en las que se desea activar los registros de CloudWatch.

Para más información, consulte Permisos para los registros de CloudWatch.

Verificar la configuración de los registros de API Gateway

Verifique que la configuración de los registros de ejecuciones o de accesos de CloudWatch se encuentre activada para API Gateway.

Nota: Puede activar los registros de ejecuciones y los registros de accesos por separado.

1.    Abra la consola de API Gateway.

2.    En el panel de navegación, elija API.

3.    Elija la API y, a continuación, elija Etapas.

4.    En Etapas, elija la etapa y, a continuación, elija la pestaña Registros/rastreo.

5.    Verifique lo siguiente en la Configuración de CloudWatch:
       La opción Habilitar Registros de CloudWatch se encuentra seleccionada.
       El nivel de registro está establecido en INFO.
Nota:
Si el nivel de registro está establecido en ERROR, únicamente se registran las solicitudes que presentan errores en API Gateway. No se registran las solicitudes a la API realizadas correctamente.
      Registrar la totalidad de los datos de solicitudes/respuestas y Habilitar métricas detalladas de CloudWatch están seleccionadas para obtener datos de registro adicionales.
Nota:
Es una práctica recomendada no habilitar la opción Registrar la totalidad de los datos de solicitudes/respuestas para las API de producción, puesto que puede ocasionar el registro de datos confidenciales.

6.    En Registros de accesos personalizados, verifique que esté seleccionada la opción Habilitar registros de accesos.

Verificar el método de registro y anularlo si es necesario

De forma predeterminada, todos los recursos de la API utilizan las mismas configuraciones que su etapa. Esta configuración se puede anular para tener diferentes configuraciones para cada método en caso de que no se desee heredar de la etapa.

1.    Abra la consola de API Gateway.

2.    En el panel de navegación, elija API.

3.    Elija la API y, a continuación, elija Etapas.

4.    En Etapas, amplíe el nombre de la etapa, y luego elija el método HTTP. Por ejemplo: GET.

5.    En Configuración, elija Anular para este método.

6.    En la configuración de CloudWatch, realice cualquier cambio de registro adicional según el caso de uso, si es necesario, y luego elija Guardar cambios.

Para obtener más información, consulte Configuración del registro de CloudWatch para una API de REST en API Gateway.