AWSSupport-TroubleshootAPIGatewayHttpErrors - AWS Systems Manager Referencia del manual de automatización

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWSSupport-TroubleshootAPIGatewayHttpErrors

Descripción

El AWSSupport-TroubleshootAPIGatewayHttpErrorsmanual ayuda a solucionar los errores 5XX/4XX al invocar una API REST de Amazon API Gateway implementada mediante el análisis de los registros de ejecución de and/or acceso y el análisis de los errores para proporcionar medidas de corrección mediante los artículos y la documentación de Re:post. AWS

importante

Este manual tiene las siguientes limitaciones:

  • El registro debe estar habilitado. Consulte Configurar el registro de CloudWatch API de Amazon mediante la consola API Gateway.

  • Los registros deben estar habilitados antes de que se produjeran los errores. La captura y el análisis de los registros no se pueden realizar de forma retrospectiva.

  • Errores cubiertos: 500, 502, 503, 504, 401, 403, 429.

  • Solo APIs se admiten REST. WebSocket y HTTP (v2) no están incluidos en este manual.

importante

El uso de este runbook puede generar cargos adicionales en su AWS cuenta por los Amazon CloudWatch Logs capturados por su API REST y por CloudWatch los Logs Insights utilizados en el análisis. Consulta CloudWatch los precios de Amazon para obtener más información sobre los cargos en los que se puede incurrir. Si el aws:deletestack paso no funciona, ve a la CloudFormation consola para eliminar manualmente la pila. El nombre de la pila creado por este manual de procedimientos comienza por AWSSupport-TroubleshootAPIGatewayHttpErrors. Para obtener información sobre la eliminación de CloudFormation pilas, consulte Eliminar una pila en la Guía del AWS CloudFormation usuario.

¿Cómo funciona?

El manual de ejecución realiza los siguientes pasos de validación y análisis:

  • Valida que la API REST especificada existe y que usted tiene los permisos necesarios.

  • Valida que la etapa especificada existe en la API.

  • Valida que la ruta de recursos especificada existe en la API.

  • Valida que el método HTTP especificado existe para el recurso.

  • Analiza CloudWatch los registros en busca de los parámetros y el intervalo de tiempo especificados para identificar los errores y proporcionar recomendaciones de corrección.

Ejecuta esta automatización (consola)

Tipo de documento

Automatización

Propietario

Amazon

Plataformas

/

Permisos de IAM necesarios

El parámetro AutomationAssumeRole requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.

  • apigateway:GET

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:DescribeLogGroups

  • logs:DescribeLogStreams

  • logs:PutLogEvents

  • logs:StartQuery

  • logs:GetQueryResults

Política de IAM de ejemplo:

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

Instrucciones

Siga estos pasos para configurar la automatización:

  1. Navegue hasta AWSSupport-TroubleshootAPIGatewayHttpErrorsSystems Manager, en Documentos.

  2. Elija Execute automation (Ejecutar automatización).

  3. Para los parámetros de entrada, introduzca lo siguiente:

    • AutomationAssumeRole (Opcional):

      • Descripción: (opcional) El nombre del recurso de Amazon (ARN) del rol AWS Identity and Access Management (IAM) que permite a SSM Automation realizar las acciones en su nombre. Si no se especifica ningún rol, SSM Automation utiliza los permisos del usuario que inicia este manual.

      • Tipo: AWS::IAM::Role::Arn

    • RestApiId (Obligatorio):

      • Descripción: (obligatorio) El ID de API de la API que requiere la solución de problemas. Debe ser una cadena alfanumérica de 10 caracteres.

      • Tipo: String

      • Valor permitido: ^[a-zA-Z0-9]{10}$

    • StageName (Obligatorio):

      • Descripción: (Obligatorio) El nombre de la etapa desplegada. Debe tener entre 1 y 128 caracteres y contener letras, números, guiones bajos o guiones.

      • Tipo: String

      • Valor permitido: ^[a-zA-Z0-9_\\-]{1,128}$

    • ResourcePath (Opcional):

      • Descripción: (opcional) La ruta del recurso para la que se configura el método. Ejemplos: /, /store/items, /{resource}.

      • Tipo: String

      • Valor predeterminado: /

    • HttpMethod (Opcional):

      • Descripción: (opcional) El método de la ruta de recursos configurada.

      • Tipo: String

      • Valores permitidos: [ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH]

      • Valor predeterminado: GET

    • StartTime (Opcional):

      • Descripción: (opcional) La fecha y hora de inicio de la consulta de los CloudWatch registros. Formato: yyyy-MM-ddTHH:mm:ss en la zona horaria UTC. Si no se especifica, el valor predeterminado es 3 días antes de la hora actual.

      • Tipo: String

      • Valor permitido: ^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$

      • Valor predeterminado: ""

    • EndTime (Opcional):

      • Descripción: (opcional) Fecha y hora de finalización de la consulta de los CloudWatch registros. Formato: yyyy-MM-ddTHH:mm:ss en la zona horaria UTC. Si no se especifica, el valor predeterminado es la hora actual.

      • Tipo: String

      • Valor permitido: ^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$

      • Valor predeterminado: ""

    • AccessLogs (Opcional):

      • Descripción: (opcional) Si se deben analizar los registros de acceso.

      • Tipo: Boolean

      • Valores permitidos: [true, false]

      • Valor predeterminado: false

    • RequestId (Opcional):

      • Descripción: (opcional) El identificador de la solicitud en la que se observó un error. Debe tener un formato de UUID válido.

      • Tipo: String

      • Valor permitido: ^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

      • Valor predeterminado: ""

  4. Seleccione Ejecutar.

  5. Se inicia la automatización.

  6. Este documento realiza los siguientes pasos:

    • CheckApiExists:

      Valida que la API REST proporcionada existe y que tienes los permisos necesarios para acceder a ella.

    • CheckStageExists:

      Valida que el nombre de etapa proporcionado existe en la API en cuestión y recupera la información del grupo de registros de acceso.

    • CheckResourceExists:

      Valida que la ruta de recurso proporcionada existe en la API y recupera el ID del recurso.

    • CheckMethodExists:

      Valida que el método HTTP proporcionado existe para el recurso especificado.

    • AnalyseLogs:

      Busca registros con los parámetros proporcionados y devuelve recomendaciones en función de los errores encontrados. Este paso analiza los registros de ejecución y acceso (si están habilitados) para identificar los errores 4XX y 5XX y proporciona una guía de corrección específica.

  7. Una vez finalizado, consulte la sección de resultados para ver los resultados detallados de la ejecución, incluidos el análisis de errores y las recomendaciones de corrección.

Referencias

Automatización de Systems Manager