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.
Uso de AWS Lambda con AWS X-Ray
Puede utilizar AWS X-Ray para visualizar los componentes de la aplicación, identificar cuellos de botella de rendimiento y solucionar problemas de solicitudes que dieron lugar a un error. Sus funciones de Lambda envían datos de rastreo a X-Ray, y X-Ray procesa los datos para generar un mapa de servicio y resúmenes de rastreo en los que se puede buscar.
Si ha habilitado el rastreo de X en un servicio que invoca su función, Lambda envía rastreos a X-Ray automáticamente. El servicio ascendente, como Amazon API Gateway, o una aplicación alojada en Amazon EC2 que está instrumentada con el X-Ray SDK, muestra las solicitudes entrantes y agrega un encabezado de rastreo que le indica a Lambda que envíe rastreos o no. Las trazas de los productores de mensajes anteriores, como Amazon SQS, se vinculan automáticamente a las trazas de las funciones Lambda descendentes, lo que crea end-to-end una vista de toda la aplicación. Para obtener más información, consulte Seguimiento de aplicaciones basadas en eventos en la Guía para desarrolladores de AWS X-Ray.
nota
En la actualidad, el seguimiento de X-Ray no es compatible con las funciones de Lambda con Amazon Managed Streaming para Apache Kafka (Amazon MSK), Apache Kafka autoadministrado, Amazon MQ con ActiveMQ y RabbitMQ, o las asignaciones de orígenes de eventos de Amazon DocumentDB.
Para activar el seguimiento activo de la función Lambda mediante la consola, siga estos pasos:
Para activar el seguimiento activo
Abra la página de Funciones
en la consola de Lambda. -
Elija una función.
Elija Configuration (Configuración), y luego Monitoring and operations tools (Herramientas de supervisión y operaciones).
Elija Editar.
-
En X-Ray, active Active tracing (Rastreo activo).
-
Seleccione Guardar.
Precios
Puede utilizar el seguimiento de X-Ray de manera gratuita cada mes hasta un límite determinado como parte del nivel Gratuito de AWS. A partir de ese umbral, X-Ray realiza cargos por almacenamiento y recuperación del seguimiento. Para más información, consulte Precios de AWS X-Ray
Su función necesita permiso para cargar datos de rastreo en X-Ray. Cuando activa el rastreo activo en la consola de Lambda, Lambda agrega los permisos necesarios al rol de ejecución de la función. De lo contrario, añada la AWSXRayDaemonWriteAccess
X-Ray no sigue todas las solicitudes realizadas a la aplicación. X-Ray aplica un algoritmo de muestreo para garantizar que el seguimiento sea eficiente, a la vez que sigue proporcionando una muestra representativa de todas las solicitudes. La tasa de muestreo es 1 solicitud por segundo y un 5 por ciento de las solicitudes adicionales.
nota
La frecuencia de muestreo de X-Ray no se puede configurar para las funciones.
En X-Ray, un seguimiento registra información sobre una solicitud procesada por uno o varios servicios. Los servicios registran segmentos que contienen capas de subsegmentos. Lambda registra un segmento para el servicio de Lambda que maneja la solicitud de invocación y otro para el trabajo realizado por la función. El segmento de función viene con subsegmentos para Initialization
, Invocation
, Restore
(solo Lambda SnapStart) y Overhead
. Para obtener más información, consulte Ciclo de vida del entorno de ejecución de Lambda.
nota
X-Ray trata las excepciones no controladas de la función de Lambda como estados de Error
. X-Ray registra los estados de Fault
solo cuando Lambda experimenta errores internos en el servidor. Para obtener más información, consulte Errores, fallas y excepciones en la Guía para desarrolladores de X-Ray.
El subsegmento Initialization
representa la fase inicial del ciclo de vida del entorno de ejecución de Lambda. Durante esta fase, Lambda crea o descongela un entorno de ejecución con los recursos que ha configurado, descarga el código de función y todas las capas, inicializa las extensiones, inicializa el tiempo de ejecución y ejecuta el código de inicialización de la función.
El subsegmento Invocation
representa la fase de invocación donde Lambda invoca el controlador de funciones. Esto comienza con el registro en tiempo de ejecución y extensión y termina cuando el motor de ejecución está listo para enviar la respuesta.
(Solo Lambda SnapStart) El subsegmento Restore
muestra el tiempo que tarda Lambda en restaurar una instantánea, cargar el tiempo de ejecución (JVM) y ejecutar cualquier enlace de tiempo de ejecución de afterRestore
. El proceso de restauración de instantáneas puede incluir el tiempo dedicado a actividades fuera de la micro VM. Esta vez se informa en el subsegmento Restore
. No se le cobrará por el tiempo que pase fuera de la micro VM para restaurar una instantánea.
El subsegmento Overhead
representa la fase que ocurre entre el momento en que el motor de ejecución envía la respuesta y la señal para la siguiente invocación. Durante este tiempo, el motor de ejecución finaliza todas las tareas relacionadas con una invocación y se prepara para congelar el entorno limitado.
nota
Ocasionalmente, es posible que observe una gran brecha entre las fases de inicialización e invocación de la función en sus trazas de X-Ray. En el caso de las funciones que utilizan la simultaneidad aprovisionada, esto se debe a que Lambda inicializa las instancias de la función mucho antes de la invocación. Para las funciones que utilizan la simultaneidad sin reservas (bajo demanda), Lambda puede inicializar proactivamente una instancia de función, incluso si no hay ninguna invocación. Visualmente, ambos casos se muestran como un intervalo de tiempo entre las fases de inicialización e invocación.
importante
En Lambda, puede usar el X-Ray SDK para extender el subsegmento Invocation
con subsegmentos adicionales para llamadas descendentes, anotaciones y metadatos. No se puede acceder al segmento de función directamente o grabar trabajo hecho fuera del ámbito de invocación del controlador.
Consulte los siguientes temas para obtener una introducción específica del seguimiento en Lambda:
Para obtener una lista completa de los servicios que admiten instrumentación activa, consulte Servicios de AWS admitidos en la Guía para desarrolladores de AWS X-Ray.
Secciones
Permisos de rol de ejecución
Lambda necesita los siguientes permisos para enviar datos de seguimiento a X-Ray. Añada dichos permisos al rol de ejecución de su función.
Estos permisos se incluyen en la política AWSXRayDaemonWriteAccess
El daemon de AWS X-Ray
En lugar de enviar datos de seguimiento directamente a la X-Ray API, el X-Ray SDK utiliza un proceso de daemon. El daemon de AWS X-Ray es una aplicación que se ejecuta en el entorno de Lambda y escucha el tráfico UDP que contiene segmentos y subsegmentos. Almacena en búfer los datos entrantes y los escribe en X-Ray en lotes, lo que reduce la sobrecarga de procesamiento y memoria necesaria para rastrear las invocaciones.
El tiempo de ejecución de Lambda permite al daemon hasta un 3 % de la memoria configurada de su función o 16 MB, lo que sea mayor. Si su función se queda sin memoria durante la invocación, el tiempo de ejecución termina el proceso del daemon primero para liberar memoria.
El proceso del daemon es totalmente administrado por Lambda y el usuario no puede configurarlo. Todos los segmentos generados por las invocaciones de funciones se registran en la misma cuenta que la función de Lambda. El daemon no se puede configurar para redirigirlo a ninguna otra cuenta.
Para obtener más información, consulte El daemon de X-Ray en la Guía para desarrolladores de X-Ray.
Habilitación del seguimiento activo con la API de Lambda
Para administrar la configuración de seguimiento con la AWS CLI o el SDK de AWS, utilice las siguientes operaciones de API.
El siguiente comando de ejemplo de la AWS CLI habilita el seguimiento activo en una función llamada my-function.
aws lambda update-function-configuration --function-name my-function \ --tracing-config Mode=Active
El modo de seguimiento forma parte de la configuración específica de la versión, cuando se publica una versión de la función. No se puede cambiar el modo de seguimiento de una versión publicada.
Habilitación del seguimiento activo con AWS CloudFormation
Para activar el seguimiento en un recurso de AWS::Lambda::Function
de una plantilla de AWS CloudFormation, utilice la propiedad TracingConfig
.
ejemplo función-inline.yml : configuración de rastreo
Resources: function: Type: AWS::Lambda::Function Properties:
TracingConfig: Mode: Active
...
Para un recurso AWS::Serverless::Function
de AWS Serverless Application Model (AWS SAM) , utilice la propiedad Tracing
.
ejemplo template.yml : configuración de rastreo
Resources: function: Type: AWS::Serverless::Function Properties:
Tracing: Active
...