View a markdown version of this page

AWSSupport-TroubleshootAPIGatewayLambdaInvocation - AWS Systems Manager Referencia del manual de procedimientos 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-TroubleshootAPIGatewayLambdaInvocation

Description (Descripción)

El AWSSupport-TroubleshootAPIGatewayLambdaInvocation manual le ayuda a solucionar problemas de integraciones de Amazon API Gateway con AWS Lambda funciones de las API HTTP y REST. El manual admite las funciones de Lambda que se utilizan como integración o como autorizador, y cubre los siguientes casos de uso:

  • Permisos insuficientes o faltantes: identifica los permisos faltantes en las políticas de recursos de Lambda o en las funciones de IAM.

  • Regulación de la función Lambda: detecta la limitación causada por los límites de simultaneidad y proporciona recomendaciones.

  • Tiempo de espera de integración de Lambda: analiza los problemas de tiempo de espera y sugiere estrategias de optimización.

  • Errores de función Lambda: identifica los errores de función y lo guía para registrar el análisis.

  • Respuesta con formato incorrecto de Lambda: detecta problemas de formato de respuesta en las integraciones y autorizadores de Lambda.

  • Configuración no válida: valida la configuración de API Gateway y Lambda.

Limitaciones

Este manual tiene las siguientes limitaciones:

  • El manual no admite escenarios de Lambda multicuenta.

  • El manual no analiza las plantillas de mapeo, los patrones de expresiones regulares ni las respuestas de integración de API Gateway.

  • El runbook solo admite autorizadores Lambda. No es compatible con los autorizadores de IAM ni con los autorizadores de Amazon Cognito.

  • El manual no cubre la regulación del lado del cliente en API Gateway.

Costos adicionales

El uso de este manual consulta las métricas de Amazon CloudWatch. Es posible que se apliquen CloudWatch cargos estándar a tu AWS cuenta por las métricas consultadas durante el análisis. Para obtener más información sobre los precios, consulta Amazon CloudWatch Pricing.

Funcionamiento

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

  • Valida la existencia de la API, la etapa y la ruta o el recurso de API Gateway especificados y confirma que se ha configurado una integración o un autorizador de Lambda.

  • Comprueba si API Gateway tiene permisos suficientes para invocar la función Lambda evaluando la política de recursos de Lambda y la función de IAM mediante una simulación de políticas de IAM.

  • Obtiene las métricas (4xxError, 5xxError CountLatency, yIntegrationLatency) de API Gateway CloudWatch para detectar API-level errores.

  • Obtiene las métricas de Lambda Invocations (Throttles, ErrorsDuration, ConcurrentExecutions y) y las correlaciona con los errores CloudWatch de API Gateway.

  • Analiza los formatos de respuesta del autorizador Lambda y de la integración cuando persisten los errores de la API pero no se detecta ningún error de Lambda.

  • Compila un informe resumido con los hallazgos, recomendaciones y referencias relevantes.

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

  • apigatewayv2:GetApi

  • apigatewayv2:GetRoute

  • apigatewayv2:GetStage

  • apigatewayv2:GetAuthorizer

  • apigatewayv2:GetIntegration

  • lambda:GetFunction

  • lambda:GetAccountSettings

  • lambda:GetPolicy

  • lambda:GetProvisionedConcurrencyConfig

  • lambda:GetFunctionConcurrency

  • iam:GetRole

  • iam:GetContextKeysForPrincipalPolicy

  • iam:GetContextKeysForCustomPolicy

  • iam:SimulatePrincipalPolicy

  • iam:SimulateCustomPolicy

  • cloudwatch:GetMetricData

Política de IAM de ejemplo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "APIGatewayReadAccess", "Effect": "Allow", "Action": [ "apigateway:GET", "apigatewayv2:GetApi", "apigatewayv2:GetRoute", "apigatewayv2:GetStage", "apigatewayv2:GetAuthorizer", "apigatewayv2:GetIntegration" ], "Resource": [ "arn:aws:apigateway:*::/restapis/*", "arn:aws:apigateway:*::/apis/*" ] }, { "Sid": "LambdaReadAccess", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetPolicy", "lambda:GetProvisionedConcurrencyConfig", "lambda:GetFunctionConcurrency", "lambda:GetAccountSettings" ], "Resource": "*" }, { "Sid": "IAMReadAndSimulate", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetContextKeysForPrincipalPolicy", "iam:GetContextKeysForCustomPolicy", "iam:SimulatePrincipalPolicy", "iam:SimulateCustomPolicy" ], "Resource": "*" }, { "Sid": "CloudWatchMetricsRead", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData" ], "Resource": "*" } ] }
nota

El usuario o rol de IAM que inicia el manual requiere las siguientes acciones:

  • iam:ListRoles

  • iam:PassRole

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeAutomationStepExecutions

  • ssm:DescribeDocument

  • ssm:GetAutomationExecution

  • ssm:GetDocument

  • ssm:ListDocuments

  • ssm:StartAutomationExecution

Instrucciones

Siga estos pasos para configurar la automatización:

  1. Abra AWSSupport-TroubleshootAPIGatewayLambdaInvocationen Systems Manager, en Documentos.

  2. Elija Ejecutar automatización.

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

    • AutomationAssumeRole (Opcional):

      El nombre del recurso de Amazon (ARN) de la función de IAM que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utilizará sus permisos.

    • ApiId (Obligatorio):

      El ID de API de la API API Gateway que requiere la solución de problemas.

    • HttpMethod (Obligatorio):

      El método HTTP del recurso o la ruta que requiere la solución de problemas. Valores permitidos:ANY,DELETE, HEADOPTIONS,GET,POST,PUT,PATCH,$default.

    • RouteIdOrResourceId (Obligatorio):

      El ID de ruta (API HTTP) o el ID de recurso (API REST) con una integración o un autorizador de Lambda que requiere la solución de problemas. Por ejemplo, dsyrv84 para una ruta de API HTTP o jklob2 para un recurso de API REST.

    • StageName (Obligatorio):

      La etapa en la que se implementa la API.

    • StartTime (Opcional):

      Comience la hora en UTC para identificar el período de tiempo que se va a realizar la consulta. El formato debe ser yyyy-MM-ddTHH:mm:ss (por ejemplo,1970-01-01T00:00:00). La hora de inicio no debe tener más de 30 días de antigüedad. Si esta entrada falta o no es válida, el runbook se establece de forma predeterminada 2 días antes de la hora de finalización. Si no se especifica una hora de finalización, el runbook se establece de forma predeterminada 2 días antes de la hora actual.

    • EndTime (Opcional):

      Finalice la hora en UTC para identificar el período de tiempo que se va a realizar la consulta. El formato debe ser yyyy-MM-ddTHH:mm:ss (por ejemplo,1970-01-01T00:00:00). La hora de finalización no debe ser superior a 2 días después de la hora de inicio. Si esta entrada falta o no es válida, el runbook toma la hora actual de forma predeterminada.

  4. Elija Ejecutar.

  5. Se inicia la automatización.

  6. Este documento realiza los siguientes pasos:

    • ValidateResourcesAndInputs:

      Comprueba que la API, la etapa y la ruta o el recurso de API Gateway existen y confirma que se ha configurado una integración o un autorizador de Lambda. Valida las entradas del rango de tiempo y extrae los detalles de la función Lambda y la API.

    • CheckAPIGatewayLambdaInvokePermissions:

      Simula los permisos del rol de IAM y evalúa la política de recursos de Lambda para determinar si API Gateway está autorizada a invocar la función Lambda. Genera políticas de ejemplo cuando los permisos son insuficientes.

    • GetAPIMetrics:

      Recupera las métricas de API Gateway (4xxError5xxErrorCount,Latency, yIntegrationLatency) del intervalo CloudWatch de tiempo especificado e identifica los patrones de API-level error.

    • GetLambdaMetrics:

      Recupera las métricas de Lambda Invocations (Throttles, ErrorsDuration, ConcurrentExecutions y) y las correlaciona con las marcas temporales CloudWatch de error de API Gateway.

    • CompareAPIGatewayAndLambdaMetrics:

      Analiza y correlaciona las métricas de API Gateway y Lambda para identificar los patrones de regulación, los escenarios de tiempo de espera y los errores de función Lambda no controlados. Determina la causa raíz del problema de invocación.

    • AuthorizerAndIntegrationTroubleshooting:

      Cuando los errores de la API persisten pero no se detecta ningún error de Lambda, analiza el autorizador Lambda y el formato de respuesta de integración, y proporciona recomendaciones para el formato de salida adecuado de la función Lambda.

    • CompileResults:

      Recopila un informe resumido con los hallazgos, los problemas de validación, los problemas de permisos y las recomendaciones para la solución de problemas con orientación práctica y referencias relevantes.

  7. Una vez finalizada, revise la sección de resultados para ver los resultados detallados de la ejecución.

Referencias

Automatización de Systems Manager