Depuración de forma remota de funciones de Lambda con Visual Studio Code - AWS Lambda

Depuración de forma remota de funciones de Lambda con Visual Studio Code

Con la característica de depuración remota de AWS Toolkit for Visual Studio Code, puede depurar las funciones de Lambda que se ejecutan directamente en la nube de AWS. Esto resulta útil cuando se investigan problemas que son difíciles de replicar de forma local o que solo se diagnostican con registros.

Con la depuración remota, puede:

  • Establecer puntos de interrupción en el código de su función de Lambda.

  • Realizar la ejecución del código en tiempo real.

  • Inspeccionar las variables y el estado durante el tiempo de ejecución.

  • Depurar las funciones de Lambda implementadas en AWS, incluidas las de las VPC o con permisos de IAM específicos.

Tiempos de ejecución admitidos

La depuración remota es compatible con los siguientes tiempos de ejecución:

  • Python (AL2023)

  • Java

  • JavaScript/Node.js (AL2023)

nota

La depuración remota es compatible con las arquitecturas x86_64 y arm64.

Seguridad y depuración remota

La depuración remota funciona dentro de los límites de seguridad de Lambda existentes. Los usuarios pueden adjuntar capas a una función mediante el permiso UpdateFunctionConfiguration, que ya tiene la capacidad de acceder a las variables de entorno y a la configuración de la función. La depuración remota no se extiende más allá de estos permisos existentes. En su lugar, agrega controles de seguridad adicionales mediante una tunelización segura y una administración automática de las sesiones. Además, la depuración remota es una característica totalmente controlada por el cliente que requiere permisos y acciones explícitos:

  • Creación de túneles seguros de IoT: el Toolkit de AWS debe crear un túnel seguro de IoT, lo que solo ocurre con el permiso explícito del usuario mediante iot:OpenTunnel.

  • Administración de archivos adjuntos y tokens de la capa de depuración: el proceso de depuración mantiene la seguridad mediante estos controles:

    • La capa de depuración debe estar asociada a la función de Lambda y este proceso requiere los siguientes permisos: lambda:UpdateFunctionConfiguration y lambda:GetLayerVersion.

    • Se debe actualizar un token de seguridad (generado mediante iot:OpenTunnel) en la variable de entorno de la función antes de cada sesión de depuración, lo que requiere lambda:UpdateFunctionConfiguration.

    • Por motivos de seguridad, este token se rota automáticamente y la capa de depuración se elimina automáticamente al final de cada sesión de depuración y no se puede volver a utilizar.

nota

La depuración remota es compatible con las arquitecturas x86_64 y arm64.

Requisitos previos

Antes de comenzar la depuración remota, asegúrese de que dispone de lo siguiente:

  1. Una función de Lambda implementada en su cuenta de AWS.

  2. AWS Toolkit for Visual Studio Code. Consulte Configuración del AWS Toolkit for Visual Studio Code para ver las instrucciones de instalación.

  3. Debe tener instalada la versión 3.69.0 o posterior del Toolkit de AWS.

  4. Credenciales de AWS configuradas en AWS Toolkit for Visual Studio Code. Para obtener más información, consulte Autenticación y control de acceso.

Depuración remota de las funciones de Lambda

Siga estos pasos para iniciar una sesión de depuración remota:

  1. Abra AWS Explorer en VS Code seleccionando el icono AWS en la barra lateral izquierda.

  2. Expanda la sección de Lambda para ver sus funciones.

  3. Haga clic con el botón derecho en la función que desee depurar.

  4. En el menú contextual, seleccione Invocar remotamente.

  5. En la ventana de invocación que se abre, marque la casilla Habilitar depuración.

  6. Haga clic en Invocar para iniciar la sesión de depuración remota.

nota

Las funciones de Lambda tienen un límite combinado de 250 MB para el código de la función y todas las capas adjuntas. La capa de depuración remota agrega aproximadamente 40 MB al tamaño de la función.

Una sesión de depuración remota finaliza cuando:

  • Selecciona Eliminar configuración de depuración en la pantalla de configuración de invocación remota.

  • Selecciona el icono de desconexión en los controles de depuración de VS Code.

  • Selecciona el archivo de controlador en el editor de VS Code.

nota

La capa de depuración se elimina automáticamente después de 60 segundos de inactividad tras su última invocación.

Deshabilitación de la depuración remota

Hay tres formas de deshabilitar esta característica:

  • Denegar actualizaciones de funciones: establezca lambda:UpdateFunctionConfiguration en deny.

  • Restringir los permisos de IoT: deniegue los permisos relacionados con el IoT

  • Bloquear capas de depuración: deniegue lambda:GetLayerVersion para los siguientes ARN:

    • arn:aws:lambda:*:*:layer:LDKLayerX86:*

    • arn:aws:lambda:*:*:layer:LDKLayerArm64:*

    nota

    Al deshabilitar esta característica, se impide agregar la capa de depuración durante las actualizaciones de la configuración de la función.

Para obtener más información sobre el uso de Lambda en VS Code, consulte Desarrollo local de funciones de Lambda con VS Code.

Para obtener instrucciones detalladas sobre la solución de problemas, los casos de uso avanzados y la disponibilidad regional, consulte Depuración remota de funciones de Lambda en la Guía del usuario de AWS Toolkit for Visual Studio Code.