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 integración 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.
Limitación de funciones de Lambda: detecta la limitación provocada 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 de 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 entre cuentas.
El manual no analiza las plantillas de mapeo, los patrones de expresiones regulares ni las respuestas de integración de API Gateway.
El libro de instrucciones solo admite los autorizadores de Lambda. No admite los autorizadores de IAM ni los de Amazon Cognito.
El manual de instrucciones no cubre las limitaciones 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 los CloudWatch precios de
Funcionamiento
El manual lleva a cabo los siguientes pasos de validación y análisis:
Valida la existencia de la API, la etapa y la ruta o el recurso especificados de API Gateway y confirma que se ha configurado una integración o un autorizador de Lambda.
Comprueba si API Gateway tiene los permisos suficientes para invocar la función de Lambda mediante la evaluación de la política de recursos de Lambda y el rol de IAM mediante la simulación de políticas de IAM.
Obtiene las métricas de API Gateway (
4xxError,5xxErrorCount, yIntegrationLatency) de API Gateway paraLatencydetectar errores. CloudWatch API-levelObtiene las métricas de Lambda (
Invocations,,ThrottlesErrorsDuration, yConcurrentExecutions) de los errores de API CloudWatch Gateway y las correlaciona con ellos.Analiza los formatos de respuesta de autorización e integración de Lambda cuando persisten los errores de la API pero no se detecta ningún error de Lambda.
Compila un informe resumido con 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:GETapigatewayv2:GetApiapigatewayv2:GetRouteapigatewayv2:GetStageapigatewayv2:GetAuthorizerapigatewayv2:GetIntegrationlambda:GetFunctionlambda:GetAccountSettingslambda:GetPolicylambda:GetProvisionedConcurrencyConfiglambda:GetFunctionConcurrencyiam:GetRoleiam:GetContextKeysForPrincipalPolicyiam:GetContextKeysForCustomPolicyiam:SimulatePrincipalPolicyiam:SimulateCustomPolicycloudwatch: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 libro de ejecución requiere las siguientes acciones:
iam:ListRolesiam:PassRolessm:DescribeAutomationExecutionsssm:DescribeAutomationStepExecutionsssm:DescribeDocumentssm:GetAutomationExecutionssm:GetDocumentssm:ListDocumentsssm:StartAutomationExecution
Instrucciones
Siga estos pasos para configurar la automatización:
-
Abra AWSSupport-TroubleshootAPIGatewayLambdaInvocation
en Systems Manager, en Documentos. -
Elija Ejecutar automatización.
-
Para los parámetros de entrada, introduzca lo siguiente:
-
AutomationAssumeRole (Opcional):
El nombre de recurso de Amazon (ARN) del rol de IAM que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza sus permisos.
-
ApiId (Obligatorio):
El ID de API de la API de 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 requieren solución de problemas. Por ejemplo,
dsyrv84para una ruta de API HTTP ojklob2para un recurso de API REST. -
StageName (Obligatorio):
La etapa en la que se implementa la API.
-
StartTime (Opcional):
La hora de inicio es UTC para identificar el período de consulta. El formato debe ser
yyyy-MM-ddTHH:mm:ss(por ejemplo,1970-01-01T00:00:00). La hora de inicio no debe haber pasado más de 30 días. Si falta esta entrada 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 ninguna hora de finalización, el runbook se establece de forma predeterminada 2 días antes de la hora actual. -
EndTime (Opcional):
Hora de finalización en UTC para identificar el período de 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 falta esta entrada o es inválida, el runbook tomará por defecto la hora actual.
-
-
Elija Ejecutar.
-
Se inicia la automatización.
-
Este documento realiza los siguientes pasos:
-
ValidateResourcesAndInputs:Verifica que la API, la etapa y la ruta o el recurso de API Gateway existan, y confirma que se ha configurado una integración o un autorizador de Lambda. Valida las entradas del intervalo de tiempo y extrae los detalles de la API y la función de Lambda.
-
CheckAPIGatewayLambdaInvokePermissions:Simula los permisos de las funciones de IAM y evalúa la política de recursos de Lambda para determinar si API Gateway está autorizada a invocar la función de Lambda. Genera políticas de ejemplo cuando los permisos son insuficientes.
-
GetAPIMetrics:Recupera las métricas (
4xxError,,5xxErrorCountLatency, yIntegrationLatency) de API Gateway CloudWatch correspondientes al intervalo de tiempo especificado e identifica los patrones de API-level error. -
GetLambdaMetrics:Recupera las métricas de Lambda (
Invocations,,ThrottlesErrorsDuration, yConcurrentExecutions) y las correlaciona con las CloudWatch marcas de tiempo de error de API Gateway. -
CompareAPIGatewayAndLambdaMetrics:Analiza y correlaciona las métricas de API Gateway y Lambda para identificar los patrones de limitación, los escenarios de tiempo de espera y los errores no controlados de las funciones de Lambda. Determina la causa principal del problema de invocación.
-
AuthorizerAndIntegrationTroubleshooting:Cuando los errores de la API persisten pero no se detecta ningún error de Lambda, analiza el formato del autorizador y de la respuesta de integración de Lambda y proporciona recomendaciones para formatear correctamente los resultados de las funciones de Lambda.
-
CompileResults:Recopila un informe resumido de 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.
-
-
Una vez finalizada, consulta la sección Resultados para ver los resultados detallados de la ejecución.
Referencias
Automatización de Systems Manager