

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.

# Funciones de AWS Lambda
<a name="building-lambda"></a>

El AWS Toolkit for Visual Studio Code ofrece soporte integral para las funciones de AWS Lambda, lo que permite crear, probar e implementar directamente desde VS Code.

Lambda es un servicio de computación totalmente administrado y basado en eventos que ejecuta el código de forma automática en respuesta a eventos de más de doscientas aplicaciones de software como servicio (SaaS) y servicios de AWS. Para obtener información detallada sobre el servicio AWS Lambda, consulte la Guía para desarrolladores de [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

En los temas siguientes se describe cómo trabajar con AWS Lambda en el AWS Toolkit for Visual Studio Code:

**Topics**
+ [Trabajar con AWS Lambda funciones](remote-lambda.md)
+ [AWS Lambda console a IDE](lambda-console-ide.md)
+ [AWS Lambda con LocalStack apoyo](lambda-localstack.md)
+ [AWS Lambda depuración remota](lambda-remote-debug.md)

# Trabajar con AWS Lambda funciones
<a name="remote-lambda"></a>

 AWS Toolkit for Visual Studio Code Esto le permite trabajar con sus AWS Lambda funciones en su entorno local de VS Code. Con el AWS kit de herramientas, puede crear, editar, probar, depurar e implementar sus funciones de Lambda sin tener que salir del IDE. Para obtener información detallada sobre el AWS Lambda servicio, consulte la [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)Guía para desarrolladores.

En las secciones siguientes se describe cómo empezar a trabajar con funciones de Lambda en el AWS Toolkit for Visual Studio Code.

**nota**  
Si ya ha creado funciones Lambda mediante el Consola de administración de AWS, puede invocarlas desde el kit de herramientas. Además, puede abrir sus funciones de Lambda en VS Code desde AWS Lambda console, para obtener información adicional, consulte el [AWS Lambda console a IDE](lambda-console-ide.md) tema de esta guía del usuario. Para crear una función de Lambda en VS Code, siga los pasos que se describen en el tema [Creación de una nueva aplicación sin servidor (local)](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/sam-get-started.html#serverless-apps-create) de esta Guía del usuario.

## Requisitos previos
<a name="remote-lambda-prereq"></a>

Se deben cumplir las siguientes condiciones para trabajar con el AWS Lambda servicio del AWS kit de herramientas.
+ La última versión de AWS Toolkit for Visual Studio Code se instala y configura con sus AWS credenciales.
+ Sus políticas y permisos gestionados AWS Identity and Access Management (IAM) están configurados para funcionar con el AWS Lambda servicio. Para obtener información detallada sobre cómo configurar los permisos y crear una política AWS gestionada compatible, consulte el AWS Lambda tema [AWS Identity and Access Management correspondiente de la Guía para AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/security-iam.html) *desarrolladores*.
+ Ya dispone de AWS Lambda funciones o está familiarizado con la creación de una. Para obtener instrucciones sobre cómo crear una función de Lambda, consulte el tema [Creación de su primera función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) de la *Guía para desarrolladores de AWS Lambda *.

## Invocación de una función de Lambda
<a name="invoke-lam-func"></a>

Para invocar una función Lambda desde AWS su cuenta en VS Code, complete los siguientes pasos.

1. Desde AWS Toolkit for Visual Studio Code, expanda el AWS explorador.

1. Desde el AWS explorador, expanda **Lambda** para ver sus recursos de Lambda.

1. Abra el menú contextual (clic con el botón derecho) de la función de Lambda que desee invocar y, a continuación, elija **Invocar en la nube** o el icono **Invocar en la nube** para abrir el menú **Remote invoke configuration** en VS Code.

1. En el menú **Remote invoke configuration**, especifique la configuración de **Payload** y agregue la información adicional que sea necesaria para el evento.
**nota**  
El primer proceso de invocación puede empezar a ejecutarse en cuanto elija **Invocar en la nube en el explorador**. AWS El resultado se muestra en la pestaña **Salida** del terminal de VS Code.

1. Elija el botón **Remote Invoke** para invocar la función. El resultado se muestra en la pestaña **Salida** del terminal de VS Code.

## Eliminación de una función de Lambda
<a name="delete-lambda"></a>

Para eliminar una función de Lambda, realice el procedimiento siguiente.

**aviso**  
No utilice este procedimiento para eliminar las funciones de Lambda asociadas a [CloudFormation](https://docs.aws.amazon.com/cloudformation/). Estas funciones deben eliminarse a través de la pila de CloudFormation .

1. Desde AWS Toolkit for Visual Studio Code, expande el AWS explorador.

1. Desde el AWS explorador, expanda **Lambda** para ver sus recursos de Lambda.

1. Haga clic con el botón derecho en la función de Lambda que desee eliminar y, a continuación, elija **Eliminar**.

1. Cuando se le solicite, confirme que desea eliminar la función.

Una vez eliminada la función, dejará de figurar en el AWS explorador.

## Descarga de una función de Lambda
<a name="import-lambda"></a>

Puede descargar código de una función de Lambda remota en su espacio de trabajo de VS Code para editarlo y depurarlo.

**nota**  
Para descargar su función Lambda, debe trabajar en un espacio de trabajo de VS Code con una carpeta accesible y el AWS kit de herramientas solo admite esta función con funciones Lambda que utilicen tiempos de ejecución de Node.js y Python.

1. Desde, expanda el AWS Toolkit for Visual Studio Code explorador. AWS 

1. Desde el AWS explorador, expanda **Lambda** para ver sus recursos de Lambda.

1. Haga clic con el botón derecho en la función de Lambda que desee descargar y, a continuación, elija **Descargar**.

1. La función Lambda se abre en el editor de VS Code y se muestra en el AWS explorador cuando se completa la descarga. El AWS kit de herramientas también crea una *configuración de inicio* en el panel de ejecución de VS Code que le permite ejecutar y depurar la función Lambda localmente con. AWS Serverless Application Model Para obtener más información sobre su uso AWS SAM, consulte. [Ejecutar y depurar una aplicación sin servidor desde una plantilla (local)](sam-get-started.md#serverless-apps-debug) 

## Implementación de actualizaciones para nuevas funciones de Lambda
<a name="deploy-lambda"></a>

Puede implementar actualizaciones en las nuevas funciones de Lambda desde una ubicación temporal no especificada de su máquina local.

**nota**  
Cuando haya cambios sin implementar en sus archivos de Lambda, recibirá una notificación mediante el icono **M** ubicado junto a los archivos modificados en el editor de VS Code y en el Explorador de AWS .

**Implementación desde el editor de VS Code**

1. Abra uno de los archivos de su función de Lambda en el editor de VS Code y, a continuación, realice un cambio en el archivo.

1. Guárdelo de forma manual desde el menú principal de VS Code, o bien pulse **option\$1s** (Mac) o **ctrl\$1s** (Windows).

1. VS Code le pregunta de forma automática si desea implementar los cambios en la nube. Elija el botón **Implementar** para confirmar la implementación.

1. VS Code le informa sobre el estado de la implementación y le envía una notificación una vez completado el proceso.

**Implementación desde el AWS explorador**

1. Abra uno de los archivos de su función de Lambda en el editor de VS Code y, a continuación, realice un cambio en el archivo.

1. Desde el AWS kit de herramientas, expanda el AWS explorador.

1. Desde el AWS explorador, expanda la AWS región con la función Lambda en la que desee implementar los cambios.

1. Desde la AWS región, expanda Lambda y navegue por la función para la que desee implementar los cambios.

1. En el menú rápido situado junto a la función, elija el icono **Guardar e implementar el código**.

1. VS Code le informa sobre el estado de la implementación y le envía una notificación una vez completado el proceso.

## Carga de actualizaciones para las funciones de Lambda existentes
<a name="upload-lambda"></a>

En los procedimientos siguientes se describe cómo cargar los cambios locales realizados en las funciones de Lambda existentes. Esta característica admite cargas con cualquier tiempo de ejecución compatible con Lambda.

**aviso**  
Antes de cargar la función de Lambda, tenga en cuenta lo siguiente:  
La actualización del código de esta manera no utiliza la AWS SAM CLI para la implementación ni crea una CloudFormation pila
El AWS kit de herramientas no valida el código. Valide el código y pruebe las funciones antes de cargar los cambios en la nube. 

**Carga de un archivo Zip**

1. Desde AWS Toolkit for Visual Studio Code, expande el AWS explorador.

1. Desde el AWS explorador, expanda **Lambda** para ver sus recursos de Lambda.

1. Haga clic con el botón derecho en la función de Lambda en la que desee cargar los cambios y, a continuación, elija **Cargar Lambda…** para abrir el menú **Seleccionar tipo de carga**.

1. Elija **Archivo ZIP** para localizar el `ZIP Archive` en el directorio local.

1. Cuando se le solicite, confirme la carga para iniciar la carga del `ZIP Archive` seleccionado.

1. El estado de la carga se muestra en VS Code y recibirá una notificación una vez completado el proceso de carga.

**Carga de un directorio sin compilación**

1. Desde AWS Toolkit for Visual Studio Code, expanda el AWS explorador.

1. Desde el AWS explorador, expanda **Lambda** para ver sus recursos de Lambda.

1. Haga clic con el botón derecho en la función de Lambda en la que desee cargar los cambios y, a continuación, elija **Cargar Lambda…** para abrir el menú **Seleccionar tipo de carga**.

1. Elija **Directorio** para ir a la pantalla **Directorio de compilación**.

1. En la pantalla **Directorio de compilación**, seleccione **No** con el fin de elegir un directorio local para la carga.

1. Cuando se le solicite, confirme la carga para cargar el directorio seleccionado.

1. El estado de la carga se muestra en VS Code y recibirá una notificación una vez completado el proceso de carga.

**Carga de un directorio con una compilación**
**nota**  
Tenga en cuenta lo siguiente:  
Este procedimiento requiere la AWS Serverless Application Model CLI.
El AWS kit de herramientas le notifica que no se puede detectar un controlador coincidente antes de cargarlo.
Para cambiar el controlador adjunto a la función Lambda, utilice AWS Lambda console el o el. AWS Command Line Interface

1. Desde AWS Toolkit for Visual Studio Code, expanda el AWS explorador.

1. Desde el AWS explorador, expanda **Lambda** para ver sus recursos de Lambda.

1. Haga clic con el botón derecho en la función de Lambda en la que desee cargar los cambios y, a continuación, elija **Cargar Lambda…** para abrir el menú **Seleccionar tipo de carga**.

1. Elija **Directorio** para ir a la pantalla **Directorio de compilación**.

1. En la pantalla **Directorio de compilación**, elija **Sí** y, a continuación, seleccione un directorio local para la carga.

1. Cuando se le solicite, confirme la carga para empezar a compilar y cargar el directorio seleccionado.

1. El estado de la carga se muestra en VS Code y recibirá una notificación una vez completado el proceso de carga.

## Conversión de la función Lambda en un proyecto AWS SAM
<a name="lambda-sam"></a>

Para convertir la función Lambda en una AWS SAM pila, complete los siguientes pasos.

**aviso**  
Actualmente, solo se admite un subconjunto de recursos al convertir una función de Lambda en un proyecto de AWS SAM . Para localizar los recursos que faltan después de una conversión, consulte la consola Lambda y agréguelos manualmente a la plantilla AWS SAM . Para obtener más detalles sobre los recursos compatibles y no compatibles, consulte el tema [Tipo de recurso compatible](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) de la *Guía para desarrolladores de AWS CloudFormation *.

1. En el AWS kit de herramientas, expanda el AWS explorador.

1. Desde el AWS explorador, expanda la AWS región con la función Lambda que desee convertir en un AWS SAM proyecto.

1. Desde la AWS región, expanda Lambda y navegue por la función que desee convertir en una AWS SAM pila.

1. En el menú rápido situado junto a la función de Lambda, elija el icono **Convertir a aplicación de SAM** a fin de navegar por el sistema de archivos local y especificar una ubicación para el nuevo proyecto de AWS SAM .

1. Tras especificar una ubicación, el AWS kit de herramientas comienza a convertir la función Lambda en AWS SAM un proyecto, VS Code proporciona actualizaciones sobre el estado del proceso.
**nota**  
Este proceso puede demorar unos minutos.

1. Cuando se lo solicite VS Code, ingrese un nombre de pila y, a continuación, presione la tecla **Enter** para continuar.

1. VS Code continúa informándole sobre el estado de su proyecto, luego le notifica cuando el proceso se ha completado y abre su nuevo AWS SAM proyecto como un espacio de trabajo de VS Code.

# AWS Lambda console a IDE
<a name="lambda-console-ide"></a>

La función AWS Lambda console al IDE le permite descargar sus AWS Lambda funciones de un código AWS Lambda console a VS Code. Al trabajar con sus funciones de Lambda en VS Code, tendrá acceso a otras opciones de desarrollo local, como AWS Serverless Application Model ()AWS SAM y. AWS Cloud Development Kit (AWS CDK)

Para obtener más información al respecto AWS Lambda, consulte la [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)Guía para desarrolladores. Para empezar a trabajar con la función Lambda en el AWS kit de herramientas, consulte el tema [Trabajo con AWS Lambda funciones](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/remote-lambda.html) de esta guía del usuario. En las secciones siguientes se describe cómo pasar el flujo de trabajo de la consola de Lambda a VS Code. Para obtener información detallada sobre cómo pasar las funciones de Lambda de la consola de Lambda a VS Code, incluida la forma de empezar a trabajar con la consola de Lambda, consulte el tema [Desarrollo local de funciones de Lambda con VS Code](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac-local-development.html) de la *Guía para desarrolladores de AWS Lambda *.

## Paso de la consola al desarrollo local
<a name="w2aac17c43c13b7"></a>

Para abrir una función de Lambda de la consola de Lambda en VS Code, complete los siguientes pasos:

1. En el navegador web, abra la [consola de Lambda](https://console.aws.amazon.com/lambda).

1. En la consola de Lambda, elija la función que desea abrir en VS Code.

1. En la vista de la función, vaya a la pestaña **Código fuente**.

1. En la pestaña **Código fuente**, elija **Abrir en VS Code**.

## Uso de la función de Lambda en VS Code
<a name="w2aac17c43c13b9"></a>

Cuando la función de Lambda se abre en VS Code a través de la consola de Lambda: 
+ VS Code se inicia automáticamente en la máquina local.
+ La función de Lambda se abre como espacio de trabajo de VS Code.
+ El `handler file` de Lambda se abre en el editor de VS Code.
**nota**  
Si no hay un `handler file` correctamente configurado en el espacio de trabajo, no se abrirá ningún archivo en el editor de VS Code.

Abrir la función Lambda en VS Code a través de la consola Lambda le permite acceder a todas las funciones AWS Lambda del kit de herramientas existentes, incluida la posibilidad de editar el código de la función con compatibilidad lingüística completa, pruebas locales, depuración remota, soporte de implementación y administración de dependencias. Para obtener más información sobre las funciones de Lambda compatibles con el AWS kit de herramientas, consulte la tabla de contenido de [AWS Lambda](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/building-lambda.html)servicios de esta guía del usuario.

# AWS Lambda con LocalStack apoyo
<a name="lambda-localstack"></a>

Cree, pruebe y depure sus aplicaciones sin servidor con el LocalStack soporte de. AWS Toolkit for Visual Studio Code LocalStack es un emulador AWS en la nube que permite realizar pruebas locales de aplicaciones sin servidor.

Para obtener más información al respecto AWS Lambda, consulta la *Guía para [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)desarrolladores*. Para obtener más información LocalStack, visite su sitio web [LocalStack](https://www.localstack.cloud/).

## Requisitos previos
<a name="prereq"></a>

 Los siguientes son requisitos previos para trabajar con VS LocalStack Code. 

**nota**  
La LocalStack CLI se instala durante el proceso de configuración, pero si prefiere una versión diferente de la LocalStack CLI, la versión mínima requerida es la *4.8.0*.
+ Se requiere una cuenta de aplicación LocalStack web para acceder a todas las funciones disponibles en los niveles gratuitos y de pago LocalStack . LocalStack La edición comunitaria está disponible sin necesidad de una cuenta.
+ Se requiere Docker para funcionar LocalStack en VS Code. Para obtener más información sobre LocalStack los requisitos de Docker, consulta el tema [Imágenes de LocalStack Docker](https://docs.localstack.cloud/aws/capabilities/config/docker-images/) en la documentación. LocalStack 
+ **Recomendado:** El AWS Command Line Interface (AWS CLI) le ayuda a trabajar con los servicios de su entorno de nube simulado.

## ¿Instalando LocalStack
<a name="install"></a>

 Para instalar versiones escalonadas LocalStack gratuitas y de pago, complete los siguientes pasos. 

**nota**  
Para obtener instrucciones sobre cómo configurar LocalStack la edición comunitaria, consulte el contenido de la *LocalStackcomunidad* en la LocalStack sección de *configuración* de este tema.

1. En el AWS kit de herramientas, expanda el explorador de **APPLICATION BUILDER**.

1. Elija el botón **Abrir tutorial** para abrir la pestaña del tutorial **Get started building your application** en el editor de VS Code.

1. En el tutorial, elija **Instalar LocalStack** para iniciar el proceso de LocalStack instalación en VS Code.

## Con LocalStackfiguración
<a name="setup"></a>

Después de instalar la LocalStack extensión para VS Code, es posible que veas uno de los siguientes indicadores cuando necesites configurarla:
+ En la barra de estado de VS Code, ubicada de forma predeterminada en la esquina inferior izquierda del IDE, el LocalStack estado es rojo.
+ VS Code te pide que lo configures. LocalStack

Hay dos tipos de configuración y configuración LocalStack, según la versión que LocalStack utilices. En las siguientes secciones con pestañas se describe cada proceso LocalStack de configuración.

**nota**  
LocalStack Los tokens de autenticación son necesarios para las versiones de nivel gratuito y de pago de. LocalStack Para obtener información específica sobre LocalStack los precios, consulta su guía de precios [Elige tu plan](https://www.localstack.cloud/pricing).

### LocalStack niveles gratuitos y de pago
<a name="free-paid"></a>

Hay 2 formas de configurarlos LocalStack.
+ En el mensaje **Configuración de VS Code LocalStack para comenzar**, elija el botón **Configuración**.
+ En la barra de estado de VS Code, selecciona el icono de LocalStack estado para abrir el mensaje **Configuración LocalStack para empezar** y, a continuación, pulsa el botón **Configuración**.

Durante la configuración, el sistema realiza los siguientes pasos:

1. Instala la LocalStack CLI.

1. Comprueba si tiene una LocalStack cuenta.

1. Si tienes una LocalStack cuenta, el sistema te guía a través del proceso de autenticación en tu navegador web predeterminado. Del mismo modo, si no tiene una LocalStack cuenta, el sistema le guiará durante la configuración de la cuenta antes del proceso de autenticación.

Una vez LocalStack configurada, el LocalStack estado se actualiza en la barra de estado de VS Code.

**nota**  
Si no has creado un AWS perfil para él LocalStack, se creará automáticamente uno nuevo como parte del proceso de LocalStack configuración.

### LocalStack Comunidad
<a name="community"></a>

La edición Community de LocalStack es de uso gratuito y no requiere que te registres para obtener una cuenta, sino que se ejecuta a partir de una imagen de Docker que no requiere licencia. Para obtener más información sobre LocalStack la Community Edition, consulta la documentación de [imágenes de la LocalStack comunidad](https://docs.localstack.cloud/references/docker-images/). En las siguientes secciones se describen los requisitos previos y la configuración básica necesaria para trabajar con LocalStack la edición comunitaria en VS Code.

**Lanzamiento de una nueva instancia**

 Para lanzar una nueva instancia de LocalStack Community, complete el siguiente procedimiento. 

**nota**  
En el siguiente ejemplo, se inicia una instancia de contenedor LocalStack en el puerto 4566. Si especifica valores de puerto diferentes, debe actualizar el valor de puerto especificado en el procedimiento que se encuentra en la *sección Configuración del AWS CLI AWS kit de herramientas*.

1. En VS Code, pulse **ctrl \$1 `(backtick)** para abrir el terminal.

1. Una vez abierto, especifique lo siguiente.

   **Mac:**

   ```
   docker run -d --name localstack_main \
   >> -p 4566:4566 \
   >> -v /var/run/docker.sock:/var/run/docker.sock \
   >> localstack/localstack
   ```

   **Windows:**

   ```
   docker run -d --name localstack_main `
   >> -p 4566:4566 `
   >> -v /var/run/docker.sock:/var/run/docker.sock `
   >> localstack/localstack
   ```

1. El terminal se actualiza con el estado de la instancia de Docker una vez completado el proceso.

Esta instancia contenerizada de LocalStack le da acceso a los AWS servicios que especificó durante el proceso de descarga.

**Configuración de la CLI para LocalStack y Docker.**

 Para configurar el kit de AWS herramientas AWS CLI y el kit de herramientas para que funcionen LocalStack en Docker, configure un nuevo perfil siguiendo estos pasos: 

1. En VS Code, pulse **ctrl \$1 `(backtick)** para abrir el terminal.

1. Una vez abierto, especifique lo siguiente.

   ```
   ~/.aws/credentials
   [localstack]
   aws_access_key_id = test
   aws_secret_access_key = test
   ~/.aws/config
   [profile localstack]
   region = us-east-1
   output = json
   endpoint_url = http://localhost:4566 [default localstack endpoint]
   ```

1. El AWS kit de herramientas detecta su LocalStack perfil y actualiza el menú de estado de la conexión.

Tras la configuración, al elegir su LocalStack perfil en la sección de AWS perfiles de la barra de estado, sus LocalStack recursos estarán visibles en el AWS explorador. Además, puede ver sus LocalStack registros en la pestaña **Salida** del terminal VS Code.

## Empezando LocalStack en VS Code
<a name="w2aac17c43c17c13"></a>

Puedes empezar a LocalStack usar cualquiera de los siguientes métodos:

**Empezando LocalStack desde la barra de estado de VS Code**

1. Desde VS Code, navega hasta la barra de estado y, a continuación, selecciona el LocalStack botón de **inicio** para iniciar LocalStack.

1. La barra de estado de VS Code se actualiza cuando LocalStack se inicia correctamente.

**Empezando LocalStack desde la **paleta de comandos** de VS Code**

1. En VS Code, pulse **Cmd \$1 Shift \$1 P** (Mac) o **Control \$1 Shift \$1 P** (Windows) para abrir la **paleta de comandos**.

1. En la **paleta de comandos**, escriba **Start LocalStack** en la barra de búsqueda y elija esta opción en la lista cuando aparezca en los resultados.

1. La barra de estado de VS Code se actualiza cuando LocalStack se inicia correctamente.

**Empezando LocalStack desde el terminal VS Code**

1. En VS Code, pulse **ctrl \$1 `(backtick)** para abrir el terminal.

1. En el terminal de VS Code, escriba el comando **localstack start** de la CLI.

1. La barra de estado de VS Code se actualiza cuando LocalStack se inicia correctamente.

## Creación de una aplicación sin servidor de muestra
<a name="serverless"></a>

 Para empezar a trabajar con LocalStack VS Code, necesitas un ejemplo de aplicación sin servidor. Si ya tiene una aplicación existente en su AWS cuenta, puede implementarla localmente usando Serverless Land LocalStack o puede crear una nueva aplicación con AWS Serverless Land.

Para obtener más información sobre cómo crear una aplicación con Serverless Land en el kit de herramientas de AWS , consulte el tema [Uso de AWS  Serverless Land](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/serverlessland-overview.html) de esta Guía del usuario. Para obtener información detallada sobre Serverless Land, consulte la página de inicio principal de la aplicación web de [Serverless Land](https://serverlessland.com/).

## Prueba y depuración de funciones Lambda con LocalStack
<a name="test-debug"></a>

Probar y depurar las funciones de Lambda en LocalStack la extensión VS Code es similar a trabajar con las funciones desplegadas en la nube. AWS La principal diferencia es que su instancia de AWS Toolkit debe estar autenticada con su LocalStack cuenta para poder implementar y depurar sus funciones. LocalStack

**nota**  
Las funciones de prueba y depuración descritas en esta sección no están disponibles para la edición Community. LocalStack   
Para trabajar con ellas LocalStack en VS Code, conéctate a tu LocalStack perfil en el AWS kit de herramientas. Cuando tu LocalStack perfil está activo, la barra de estado de VS Code muestra **AWS: profile:localstack (punto final personalizado)** con una marca de verificación.

Para obtener información detallada sobre cómo trabajar con las funciones de Lambda en el AWS kit de herramientas, consulte el tema [Trabajo con AWS Lambda funciones](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/remote-lambda.html) de esta guía del usuario.

# AWS Lambda depuración remota
<a name="lambda-remote-debug"></a>

 AWS Toolkit for Visual Studio Code Esto le permite depurar AWS Lambda las funciones que se ejecutan en la nube, directamente en VS Code. Con la depuración AWS Lambda remota, puede inspeccionar las funciones en ejecución, establecer puntos de interrupción, examinar variables y realizar la depuración gradual sin modificar su flujo de trabajo de desarrollo actual.

En las secciones siguientes se describe cómo trabajar con la depuración remota de Lambda en el AWS Toolkit for Visual Studio Code.

## Cómo funciona la depuración remota de Lambda
<a name="w2aac17c43c19b7"></a>

El AWS kit de herramientas permite la depuración remota modificando temporalmente las funciones de Lambda con una capa de depuración de Lambda adicional y ampliando el límite de tiempo de espera de invocación de Lambda a 900 segundos. Se establece una conexión segura entre el depurador local y el entorno de tiempo de ejecución Lambda mediante la opción de Túnel seguro de AWS IoT . Esta conexión permite utilizar los puntos de interrupción del código local para procesar la función a medida que se ejecuta de forma remota. Una vez finalizada la sesión de depuración, todas las modificaciones temporales se revierten automáticamente a su configuración original.

## Introducción
<a name="w2aac17c43c19b9"></a>

### Tiempos de ejecución admitidos
<a name="w2aac17c43c19b9b3"></a>

La depuración remota de Lambda es compatible con los siguientes tiempos de ejecución.
+ Python (Amazon Linux 2023)
+ Java
+ Typescript/JavaScript/Node.js (Amazon Linux 2023)

**nota**  
La depuración remota de Lambda no admite las instancias gestionadas por Lambda ni los tipos de funciones de imagen OCI.

### Requisitos previos
<a name="w2aac17c43c19b9b5"></a>

Antes de comenzar, se deben cumplir los siguientes requisitos previos:
+ Debe tener AWS credenciales válidas configuradas en el kit de herramientas. AWS Para obtener información adicional sobre la instalación del AWS kit de herramientas y la configuración de las credenciales, consulte el tema [Introducción](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/setting-up.html) de esta guía del usuario. 
+ Se ha implementado una función Lambda en su AWS cuenta. Para obtener más información sobre la implementación de una función de Lambda, consulte el tema [Creación de su primera función de Lambda](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html) de la Guía para desarrolladores de *AWS Lambda*.
+ Debe tener la política AWS Identity and Access Management (de IAM) y los permisos adecuados para depurar su función. Para obtener más información sobre los permisos de Lambda, consulte el tema [Políticas administradas de AWS para AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/security-iam-awsmanpol.html) de la Guía para desarrolladores de *AWS Lambda*. A continuación, se muestra un ejemplo de una política que contiene los permisos mínimos necesarios para trabajar con la depuración remota de Lambda en el kit de herramientas de AWS .
**nota**  
La depuración remota se habilita mediante AWS AWS IoT Secure Tunneling. Esta opción permite que el depurador local establezca una conexión segura con el entorno de tiempo de ejecución Lambda.

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lambda:ListFunctions",
          "lambda:GetFunction",
          "lambda:GetFunctionConfiguration",
          "lambda:GetLayerVersion",
          "lambda:UpdateFunctionConfiguration",
          "lambda:InvokeFunction",
          "lambda:PublishVersion",
          "lambda:DeleteFunction",
          "iot:OpenTunnel",
          "iot:RotateTunnelAccessToken",
          "iot:ListTunnels"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

## Acceso a la depuración remota de Lambda
<a name="w2aac17c43c19c11"></a>

Existen dos rutas principales para acceder a la depuración remota de Lambda en el AWS kit de herramientas: el AWS explorador o el explorador de Application Builder. Desde el AWS explorador, puede acceder a la depuración remota de Lambda a través de sus nodos. AWS Lambda Desde el explorador Desarrollador de aplicaciones, puede acceder a la depuración remota de Lambda a través de los proyectos de AWS SAM locales.

**Acceso a la depuración remota de Lambda desde el explorador AWS**

1. En VS Code, abra la extensión AWS Toolkit.

1. Desde el AWS kit de herramientas, expande el AWS explorador.

1. En el explorador, expanda el nodo de **Lambda**.

1. Vaya a la función que desee depurar y, a continuación, elija el icono **Invocar remotamente** en el menú contextual para abrir la pantalla **Configuración de invocación remota**.

**Acceso a la depuración remota de Lambda desde el explorador Desarrollador de aplicaciones**

1. En VS Code, abre la extensión AWS Toolkit.

1. Desde el AWS kit de herramientas, expanda el explorador del generador de aplicaciones.

1. En el explorador, expanda el proyecto de `AWS SAM` que contiene el proyecto de Lambda que quiere depurar.

1. Expanda la función de `Lambda` implementada que desea depurar.

1. Vaya a la función remota y, a continuación, elija el icono **Invocar remotamente** en el menú contextual para abrir la pantalla **Remote invoke configuration**.

## Uso de la depuración remota de Lambda
<a name="w2aac17c43c19c13"></a>

En las secciones siguientes se describe cómo trabajar con la depuración remota de Lambda en el AWS Toolkit for Visual Studio Code.

**nota**  
Las funciones de Lambda tienen un límite de cinco capas y un límite combinado de 250 MB para el código de la función y todas las capas adjuntas. Para ejecutarse, la depuración remota de Lambda necesita disponer de al menos una capa libre.

### Configuración de una sesión de depuración
<a name="w2aac17c43c19c13b7"></a>

Antes de empezar, configure la sesión de depuración mediante el procedimiento que se indica a continuación:

1. Abra el menú de **configuración de invocación remota** completando el procedimiento de *depuración remota de Lambda desde AWS el explorador o el procedimiento de depuración remota* de *Acceso a Lambda desde el explorador de Application Builder, que se encuentra en la* sección anterior.

1. En el menú **Configuración de invocación remota**, seleccione la casilla **Depuración remota** para mostrar las propiedades correspondientes a esta.

1. Especifique la **Ruta raíz local** al archivo de controlador local.
**nota**  
La ruta raíz local es la ubicación de su código fuente que coincide con la función de Lambda implementada. Si trabaja desde una función implementada en el explorador Desarrollador de aplicaciones, la ruta raíz local se detecta de forma automática.  
Si no tiene el código fuente almacenado de forma local, elija el botón **Descargar código remoto** para recuperar el código fuente de la función de Lambda. Al hacerlo, se abre el `handler file` en el editor de VS Code.

1. En la sección **Payload**, especifique dónde se obtienen los datos del evento de prueba.

### Establecimiento de puntos de interrupción y depuración
<a name="w2aac17c43c19c13b9"></a>

Establezca puntos de interrupción e inicie la depuración mediante el siguiente procedimiento:

1. En el `handler file` del editor de VS Code, haga clic en el margen interior para establecer puntos de interrupción en los números de línea donde quiera poner la depuración en pausa.

1. Cuando esté conforme con los puntos de interrupción, vuelva al menú **Remote invoke configuration** para comprobar que la configuración de sus ajustes es correcta y, a continuación, elija el botón **Remote invoke** para iniciar la depuración.

1. El AWS kit de herramientas actualiza la función Lambda con capacidades de depuración, establece un túnel seguro para la sesión de depuración, invoca la función con la carga útil especificada y, a continuación, detiene el proceso cuando alcanza un punto de interrupción.

1. En una pausa de punto de interrupción use el panel **Ejecución y depuración** para ver sus **Variables**, **Pila de llamadas** y **Puntos de interrupción**.

### Actualización y pruebas de la función
<a name="w2aac17c43c19c13c11"></a>

Para modificar el código y probar los cambios con una implementación rápida, realice el procedimiento siguiente:

1. Con la sesión de depuración activa, realice cambios en el `handler file` del editor de VS Code.

1. Guarde los cambios (**Command\$1S on macOS**,**Ctrl\$1S on Windows**).

1. Cuando se le solicite, confirme que desea continuar con la implementación de los cambios. El AWS kit de herramientas actualizará la función Lambda con el código modificado.

1. Siga depurando y probando los cambios mediante el establecimiento de nuevos puntos de interrupción y la selección del botón **Invocación remota** de nuevo.
**nota**  
 Como alternativa, puede anular la selección de la opción **Attach debugger** en los controles de depuración de VS Code y elegir el botón **Remote invoke** para ejecutar la función sin depurar.

### Finalización de una sesión de depuración
<a name="w2aac17c43c19c13c13"></a>

Cada una de las siguientes opciones finaliza la sesión de depuración remota y elimina la capa de depuración del proyecto:
+ Seleccione la opción **Remove Debug Setup** en la pantalla **Remote invoke configuration**.
+ Seleccione el icono de **desconexión** en los controles de depuración de VS Code.
+ Cierre el `handler file` en el editor de VS Code.

**nota**  
Tome nota de lo siguiente:  
La capa de depuración de Lambda se elimina automáticamente después de 60 segundos de inactividad. El tiempo empieza a contar tras la última invocación.
Si realizó cambios de código en sus funciones gestionadas infrastructure-as-code (IaC) (AWS SAM, AWS CDK, Terraform) durante el proceso de depuración, guárdelos en su proyecto local y considere la posibilidad de actualizar su repositorio de control de código fuente. Los cambios no guardados se sobrescriben cuando se vuelve a implementar la función IaC.
Si ha realizado cambios temporales solo con fines de depuración, puede que quiera volver a implementar la función desde el control de origen para asegurarse de que coincide con el código de producción.

### Depuración de funciones TypeScript Lambda con mapas de origen
<a name="typescript-source-maps"></a>

En las siguientes secciones se describe cómo depurar las funciones de TypeScript Lambda con mapas de origen.

#### Requisitos previos
<a name="w2aac17c43c19c13c15b5"></a>

Para depurar las funciones de TypeScript Lambda, se deben cumplir los siguientes requisitos previos.
+  TypeScript Debe compilarse con la opción de mapa fuente habilitada. Para obtener información adicional, consulte el tema de [soporte del mapa JavaScript fuente](https://code.visualstudio.com/docs/typescript/typescript-debugging#_javascript-source-map-support) en la documentación de VS Code.
+ No se admiten los mapas fuente en línea. Debe utilizar un `.js.map` archivo independiente para almacenar el mapa de origen.

#### Configuración
<a name="w2aac17c43c19c13c15b7"></a>

Para configurar la depuración remota de Lambda para las funciones de TypeScript Lambda en el AWS kit de herramientas, complete los siguientes pasos.

1. En el AWS kit de herramientas, expanda el explorador. AWS 

1. En el explorador, expanda el nodo de **Lambda**.

1. Navegue hasta la función para la que desee configurar y, a continuación TypeScript, seleccione el icono de **invocación remota** en el menú contextual para abrir la pantalla de configuración de la **invocación remota**.

1. Seleccione la casilla **Depuración remota** para habilitar la configuración remota.

1. Apunte al directorio que contiene su `TypeScript handler file` a fin de configurar la **ruta raíz local**.
**nota**  
En el `TypeScript handler file` se establecen los puntos de interrupción de la depuración.

1. Expanda la opción de **Configuración adicional de depuración remota**.

1. Seleccione la casilla **Mapa de origen** para habilitar los mapas de origen.

1. Establezca el campo **Archivos de salida** en el directorio local de la copia de la función de Lambda.  
**Example**  

   Si `app.js` y `app.map` están en `.aws-sam/build/HelloWorldFunction`, establezca la ubicación de los **archivos de salida** en `/Users/user/project/aws-sam/build/HelloWorldFunction/*`.
**nota**  
La ruta del **archivo de salida** debe ser absoluta.  
Para los AWS CDK proyectos AWS SAM y proyectos, el AWS kit de herramientas admite la detección automática del mapa fuente. Si el campo **Archivos salientes** se deja vacío para estos proyectos, el kit de herramientas intentará detectar automáticamente la ubicación del mapa de origen.

1. Cuando esté satisfecho con la configuración, pulse el botón de **invocación remota** para empezar a depurar la función. TypeScript 

## Solución de problemas y casos de uso avanzados
<a name="troubleshooting"></a>

Si se produce un error en la sesión de depuración, inicie el proceso de solución de problemas mediante estos pasos:

1. Actualice el AWS kit de herramientas a la última versión.

1. Actualice la vista web; para ello, cierre la vista web **Configuración de invocación remota** y vuelva a abrirla.

1. Cierre VS Code por completo y vuelva a abrirlo a fin de reiniciarlo.

1. Abra la paleta de comandos de VS Code, escriba el comando **AWS: Reset Lambda Remote Debugging Snapshot** y selecciónelo cuando aparezca en los resultados para restablecer la instantánea de depuración remota de Lambda.

1. [Si no puede solucionar el problema, envíe un problema a AWS Toolkit for Visual Studio Code GitHub Problemas.](https://github.com/aws/aws-toolkit-vscode/issues)

### Caso de uso avanzado: configuración de firma de código
<a name="troubleshooting-code-signing-configuration"></a>

La depuración remota requiere adjuntar una capa de depuración a la función de Lambda. Si la función tiene habilitada y aplicada la configuración de firma de código, el AWS kit de herramientas no podrá adjuntar automáticamente la capa de depuración a la función.

Existen dos opciones para resolver el problema de configuración de firma de código.
+ Elimine temporalmente la firma de código.
+ Use una capa de depuración firmada.

#### Eliminación temporal de la firma de código
<a name="troubleshooting-code-signing-configuration-temp-remove"></a>

Actualice la configuración de firma de código mediante el establecimiento de `UntrustedArtifactOnDeployment : Warn` y, a continuación, vuelva a habilitarla como `Enforced` una vez completado el proceso de depuración.

*Para obtener más información, consulta la [UpdateCodeSigningConfig](https://docs.aws.amazon.com//lambda/latest/api/API_UpdateCodeSigningConfig.html)referencia en la Referencia de la API.AWS Lambda *

#### Uso de una capa de depuración firmada
<a name="troubleshooting-code-signing-configuration-signed-debug-layer"></a>

1. Desde Depuración remota de Lambda en el AWS kit de herramientas, amplíe la sección de configuración adicional de **Depuración remota**.

1. En la sección **Configuración adicional de depuración remota**, copie el nombre de recurso de Amazon (ARN) de la capa de región del campo **Anulación de capa**.

1. Desde AWS CLI, utilice el siguiente comando para descargar la versión `aws lambda get-layer-version-by-arn --arn layer-arn` de la capa y sustituya *layer-arn* por el ARN de su capa. *Para obtener instrucciones detalladas sobre cómo descargar la capa de depuración firmada, consulte la referencia [get-layer-version-by-arn en la Referencia de comandos](https://docs.aws.amazon.com/cli/latest/reference/lambda/get-layer-version-by-arn.html).AWS CLI *

1. Firme la capa con su configuración de firma de código y publíquela en su cuenta. *Para obtener instrucciones sobre la firma y la publicación, consulta el tema [Cómo configurar la firma de código para tu AWS SAM aplicación](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html) en la AWS Serverless Application Model Guía para desarrolladores.*

1. Una vez que la capa se haya firmado y publicado en su cuenta, vuelva a la sección **Configuración adicional de depuración remota** de la depuración remota de Lambda y, a continuación, escriba el nuevo ARN de la capa en el campo **Anulación de capa**. Una vez completado el proceso, la depuración remota de Lambda utiliza la capa firmada en lugar de la predeterminada.

### Caso de uso avanzado: funciones de depuración con SnapStart o aprovisionamiento simultáneo
<a name="troubleshooting-snapstart-provisioned-concurrency"></a>

En el caso de las funciones Lambda configuradas con SnapStart simultaneidad o aprovisionadas, publicar una nueva versión lleva mucho más tiempo. Para acelerar el flujo de trabajo de depuración, puede configurar la depuración remota de Lambda para que actualice solo `$LATEST` la versión de la función en lugar de publicar una nueva versión.

1. En la pantalla de configuración de la **invocación remota, amplíe los ajustes de configuración** adicionales de la **depuración remota**.

1. Deseleccione la opción **Publicar versión**.

1. El AWS kit de herramientas ahora solo actualizará la `$LATEST` versión de la función y la depurará utilizándola.

**nota**  
Como efecto secundario de la depuración con la `$LATEST` versión, debes evitar otro tráfico que pueda invocar tu `$LATEST` versión para garantizar un entorno de depuración sin interrupciones.

### Regiones admitidas
<a name="troubleshooting-regions"></a>

El siguiente error se produce cuando una región no admite la depuración remota.

```
Region ${region} doesn't support remote debugging yet
```

A continuación se muestra una lista de las regiones admitidas:
+ ap-east-1
+ ap-northeast-1
+ ap-northeast-2
+ ap-south-1
+ ap-southeast-1
+ ap-southeast-2
+ ca-central-1
+ eu-central-1
+ eu-north-1
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ me-central-1
+ me-south-1
+ sa-east-1
+ us-east-1
+ us-east-2
+ us-west-1
+ us-west-2

### Lambda RequestEntityTooLargeException
<a name="troubleshooting-storage-limit"></a>

Las funciones de Lambda tienen un límite de cinco capas y 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 tiene aproximadamente 40 MB, lo que puede hacer que la función supere este límite si tiene un paquete de funciones de gran tamaño o varias capas. Para obtener más información, consulte la sección [Lambda: InvalidParameterValueException o RequestEntityTooLargeException](https://docs.aws.amazon.com//lambda/latest/dg/troubleshooting-deployment.html#troubleshooting-deployment-InvalidParameterValueException1) tema de la Guía para *AWS Lambda desarrolladores*.

En la lista siguiente se describen distintas formas de solucionar y corregir este error:
+ **Reducir el tamaño de la función**: optimice el código de la función y elimine las dependencias innecesarias.
+ **Eliminar las capas no utilizadas**: elimine de forma temporal las capas no esenciales durante la depuración.
+ **Utilizar dependencias externas**: mueva las dependencias grandes a un almacenamiento externo, como Amazon S3, y cárguelas en tiempo de ejecución.

### Solución de problemas de depuración de Java
<a name="troubleshooting-java-debugging"></a>

Para depurar una función de Java Lambda, debe tener instalada localmente la misma versión de Java que coincida con la versión de tiempo de ejecución de la función Lambda.

Por ejemplo, al depurar una función de Java 25, debe tener Java 25 instalado en el entorno local en el que se ejecuta el AWS kit de herramientas. Si intenta depurar una función de Java 25 con Java 21 o una versión anterior instalada localmente, la depuración remota no podrá detenerse en los puntos de interrupción que establezca.

Asegúrese de que la versión local de Java coincida con la versión de tiempo de ejecución de la función Lambda antes de iniciar una sesión de depuración.

### Superación de la cuota del túnel seguro de IoT
<a name="troubleshooting-tunnel-quota"></a>

A continuación, se muestra un ejemplo del *error de superación de la cuota de túnel* que se produce cuando se alcanza el límite diario de conexiones de tunelización AWS IoT seguras en la depuración remota de Lambda.

```
Error creating/reusing tunnel: LimitExceededException: Exceeded quota of Lambda debugging tunnels
```

AWS IoT Las conexiones de Secure Tunneling tienen las siguientes cuotas:
+ El túnel seguro de IoT de capa gratuita tiene asignadas diez conexiones al día.
+ Cada túnel admite una instancia de VS Code durante un máximo de doce horas.
+ La cuota se aplica por AWS cuenta y por día.

Si se produce el error de tunelización AWS IoT segura, espera a que se restablezca la cuota diaria o ponte en contacto con el servicio de AWS asistencia para solicitar un aumento del límite de cuota. [Para obtener la información AWS de contacto de soporte, consulta el portal de contacto de AWS soporte.](https://aws.amazon.com/contact-us/) *Para obtener información detallada sobre la tunelización AWS IoT segura, consulte el tema de la [tunelización AWS IoT segura](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html) en la Guía para desarrolladores.AWS IoT *