

# Uso de AWS Lambda desde el AWS Toolkit for JetBrains
<a name="building-lambda"></a>

En los temas siguientes se describe cómo utilizar las funciones de AWS Lambda desde el AWS Toolkit for JetBrains

**Topics**
+ [Tiempos de ejecución de Lambda](lambda-runtimes.md)
+ [Creación de una función de](create-new-lambda.md)
+ [Ejecución (invocación) o depuración de una función local](invoke-lambda.md)
+ [Ejecución (invocación) de una función remota](lambda-remote.md)
+ [Cambio (actualización) de la configuración de la función](lambda-update.md)
+ [Eliminación de una función](lambda-delete.md)

# Tiempos de ejecución de AWS Lambda y compatibilidad con el AWS Toolkit for JetBrains
<a name="lambda-runtimes"></a>

AWS Lambda admite múltiples idiomas a través del uso de tiempos de ejecución. Un tiempo de ejecución proporciona un entorno específico del lenguaje que transmite eventos de invocación, información de contexto y respuestas entre Lambda y la función. Para obtener información detallada sobre el servicio de Lambda y los tiempos de ejecución compatibles, consulte el tema [Tiempos de ejecución de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy) en la *Guía del usuario de AWS Lambda*.

A continuación se describen los entornos de tiempo de ejecución que actualmente se admiten para su uso con el AWS Toolkit for JetBrains.


| Nombre | Identifier | Sistema operativo | Arquitectura | 
| --- | --- | --- | --- | 
|  Node.js 18  |  nodejs18.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Node.js 16  |  nodejs16.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Node.js 14  |  nodejs14.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.11  |  python3.11  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.10  |  python3.10  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.9  |  python3.9  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.8  |  python3.8  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.7  |  python3.7  |  Amazon Linux 2  |  x86\$164  | 
|  Java 17  |  java17  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 11  |  java11  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 8  |  java8.al2  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 8  |  java8  |  Amazon Linux 2  |  x86\$164  | 
|  .NET 6  |  dotnet6  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Go 1.x  |  go1.x  |  Amazon Linux 2  |  x86\$164  | 

# Creación de una función de AWS Lambda mediante el AWS Toolkit for JetBrains
<a name="create-new-lambda"></a>

Puede usar el AWS Toolkit for JetBrains para crear una función de AWS Lambda que forme parte de una aplicación sin servidor de AWS. O puede crear una función de Lambda independiente.

Para crear una función de Lambda que sea parte de una aplicación de AWS sin servidor, omita el resto de este tema y consulte [Creación de una aplicación](deploy-serverless-app.md) en su lugar.

Para crear una función de Lambda independiente, primero debe instalar el AWS Toolkit for JetBrains y, si aún no lo ha hecho, conectarse a una cuenta de AWS por primera vez. A continuación, con IntelliJ IDEA, PyCharm, WebStorm o JetBrains Rider ya en ejecución, realice una de las siguientes acciones:
+ Abra AWS Explorer, si aún no está abierto. Si tiene que cambiar a una región de AWS distinta para crear la función, hágalo ahora. Luego, haga clic con el botón derecho en **Lambda** y elija **Crear nueva AWS Lambda**.  
![\[Creación de una función de AWS Lambda comenzando desde el Explorador de AWS\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-create-aws-explorer.png)

  Rellene el cuadro de diálogo [Create Function (Crear función)](create-function-dialog.md) y, a continuación, elija **Create Function (Crear función)**. El AWS Toolkit for JetBrains crea una pila de AWS CloudFormation correspondiente para la implementación y agrega el nombre de la función a la lista de **Lambda** en el **explorador de AWS**. Si la implementación falla, puede intentar averiguar la razón consultando los registros de eventos de la pila.
+ Cree un archivo de código que implemente un controlador de funciones para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html). 

  Si tiene que cambiar a una región de AWS distinta para crear la función remota que se ejecutará (invocará), hágalo ahora. A continuación, en el archivo de código, elija el icono **Lambda** en el margen situado junto al controlador de funciones y, a continuación, seleccione **Crear nueva AWS Lambda**. Rellene el cuadro de diálogo [Create Function (Crear función)](create-function-dialog.md) y, a continuación, elija **Create Function (Crear función)**.  
![\[Creación de una función de AWS Lambda comenzando a partir de un controlador de funciones existente en un archivo de código\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**nota**  
Si el icono de **Lambda** no aparece en el margen situado junto al controlador de funciones, intente mostrarlo para el proyecto actual seleccionando la siguiente casilla en **Configuración**/**Preferencias**: **Herramientas**, **AWS**, **Configuración del proyecto**, **Mostrar los iconos del margen para todos los posibles controladores de AWS Lambda**. Además, si el controlador de funciones ya se ha definido en la plantilla de AWS SAM correspondiente, el comando **Crear nueva AWS Lambda** no aparecerá.

  Después de elegir **Crear función**, el AWS Toolkit for JetBrains crea una función correspondiente en el servicio de Lambda para la cuenta de AWS conectada. Si la operación se realiza con éxito, después de actualizar el **explorador de AWS**, la lista de **Lambda** mostrará el nombre de la nueva función.
+ Si ya tiene un proyecto que contiene una función de AWS Lambda, y si primero necesita cambiar a una región de AWS distinta para crear la función, hágalo ahora. En el archivo de código que contiene el controlador de funciones para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), elija el icono de **Lambda** en el margen situado junto al controlador de funciones. Elija **Crear nueva AWS Lambda**, complete el cuadro de diálogo [Crear función](create-function-dialog.md) y, a continuación, selecciona **Crear función**.  
![\[Creación de una función de AWS Lambda comenzando a partir de un controlador de funciones existente en un archivo de código\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**nota**  
Si el icono de **Lambda** no aparece en el margen situado junto al controlador de funciones, intente mostrarlo para el proyecto actual seleccionando la siguiente casilla en **Configuración**/**Preferencias**: **Herramientas**, **AWS**, **Configuración del proyecto**, **Mostrar los iconos del margen para todos los posibles controladores de AWS Lambda**. Además, el comando **Crear nueva AWS Lambda** no se mostrará si el controlador de funciones ya está definido en la plantilla de AWS SAM correspondiente.

  Después de elegir **Crear función**, el AWS Toolkit for JetBrains crea una función correspondiente en el servicio de Lambda para la cuenta de AWS conectada. Si la operación se realiza con éxito, después de actualizar el **explorador de AWS**, el nombre de la nueva función aparecerá en la lista de **Lambda**.

Después de crear la función, puede ejecutar (invocar) o depurar la versión local de la función o ejecutar (invocar) la versión remota.

# Ejecución (invocación) o depuración de la versión local de una función de AWS Lambda mediante el AWS Toolkit for JetBrains
<a name="invoke-lambda"></a>

Para completar este procedimiento, debe crear la función de AWS Lambda que quiere ejecutar (invocar) o depurar, si aún no la ha creado.
**nota**  
Si desea ejecutar (invocar) o depurar la versión local de una función de Lambda y ejecutar (invocar) o depurar esa función localmente con propiedades no predeterminadas u opcionales, primero debe establecer esas propiedades en el archivo de plantilla de AWS SAM correspondiente de la función (por ejemplo, en un archivo denominado `template.yaml` dentro del proyecto). Para ver una lista de propiedades disponibles, consulte [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) en el repositorio [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) en GitHub.

1. Haga una de las siguientes acciones:
   + En el archivo de código que contiene el controlador de funciones para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), elija el icono de Lambda en el margen situado junto al controlador de funciones. Elija **Run '[Local]' (Ejecutar '[Local]')** or **Debug '[Local]' (Depurar '[Local]')**.   
![\[Ejecución o depuración de la versión local de una función de Lambda comenzando desde el controlador de funciones en el archivo de código\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-local-code.png)
   + Con la ventana de la herramienta **Project (Proyecto)** ya abierta y mostrando el proyecto que contiene la función, abra el archivo `template.yaml` del proyecto. Elija el icono **Run (Ejecutar)** en el margen interior junto a la definición de recurso de la función y, a continuación, elija **Run '[Local]' (Ejecutar '[Local]')** o **Debug '[Local]' (Depurar '[Local]')**.  
![\[Ejecución o depuración de la versión local de una función de Lambda comenzando a partir de la definición de función en el archivo de plantilla de AWS SAM\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-local-template.png)

1. Rellene el cuadro de diálogo [Editar configuración (configuración de la función local)](run-debug-configurations-dialog-local.md) si se muestra y, a continuación, elija **Ejecutar** o **Depurar**. Los resultados se muestran en la ventana de la herramienta **Run (Ejecutar)** o **Debug (Depurar)**.
   + Si el cuadro de diálogo **Editar configuración** no aparece y quiere cambiar la configuración existente, cambie primero su configuración y, a continuación, repita este procedimiento desde el principio. 
   + Si faltan los detalles de configuración, expanda **Templates (Plantillas)**, **AWS Lambda** y, a continuación, elija **Local**. Elija **Aceptar** y repita este procedimiento desde el principio. 

# Ejecución (invocación) de la versión remota de una función de AWS Lambda mediante el AWS Toolkit for JetBrains
<a name="lambda-remote"></a>

Una versión *remota* de una función de AWS Lambda es una función cuyo código fuente ya existe dentro del servicio de Lambda para una cuenta de AWS.

Para completar este procedimiento, primero debe instalar el AWS Toolkit for JetBrains y, si aún no lo ha hecho, conectarse a una cuenta de AWS por primera vez. A continuación, con IntelliJ IDEA, PyCharm, WebStorm o JetBrains Rider en ejecución, haga lo siguiente.

1. Abra AWS Explorer, si aún no está abierto. Si necesita cambiar a una región de AWS distinta que contenga la función, hágalo ahora.

1. Expanda **Lambda** y confirme que el nombre de la función aparece en la lista. A continuación, vaya al paso 3 en este procedimiento.

   Si el nombre de la función no aparece en la lista, cree la función de Lambda que desea ejecutar (invocar). 

   Si ha creado la función como parte de una aplicación de AWS sin servidor, también debe implementar esa aplicación.

   Si ha creado la función creando un archivo de código que implementa un controlador de funciones para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), en el archivo de código, elija el icono de Lambda que se muestra junto al controlador de funciones. A continuación, elija **Crear nueva AWS Lambda**. Rellene el cuadro de diálogo [Create Function (Crear función)](create-function-dialog.md) y, a continuación, elija **Create Function (Crear función)**.

1. Con **Lambda** abierta en el **explorador de AWS**, haga clic con el botón derecho en el nombre de la función y, a continuación, elija **Ejecutar '[Remoto]'**.  
![\[Ejecución de la versión remota de una función de Lambda comenzando desde el explorador de AWS\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-remote.png)

1. Rellene el cuadro de diálogo [Editar configuración (configuración de la función remota)](run-debug-configurations-dialog-remote.md) si se muestra y, a continuación, elija **Ejecutar** o **Depurar**. Los resultados se muestran en la ventana de la herramienta **Run (Ejecutar)** o **Debug (Depurar)**.
   + Si el cuadro de diálogo **Editar configuración** no aparece y quiere cambiar la configuración existente, cambie primero su configuración y, a continuación, repita este procedimiento desde el principio. 
   + Si faltan los detalles de configuración, expanda **Templates (Plantillas)**, **AWS Lambda** y, a continuación, elija **Local**. Elija **Aceptar** y repita este procedimiento desde el principio. 

# Cambio (actualización) de la configuración de la función de AWS Lambda utilizando el AWS Toolkit for JetBrains
<a name="lambda-update"></a>

Para utilizar el AWS Toolkit for JetBrains para cambiar (actualizar) la configuración de una función de AWS Lambda, siga uno de estos procedimientos.
+ Con el archivo de código abierto que contiene el controlador de funciones para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html), o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), en el menú principal, elija **Run (Ejecutar)**, **Edit Configurations (Editar configuraciones)**. Rellene el cuadro de diálogo [Run/Debug Configurations (Configuraciones de ejecución/depuración)](run-debug-configurations-dialog.md) y, a continuación, elija **OK (Aceptar)**.
+ Abra AWS Explorer, si aún no está abierto. Si necesita cambiar a una región de AWS distinta que contenga la función, hágalo ahora. Expanda **Lambda**, elija el nombre de la función para la que desea cambiar la configuración y, a continuación, realice una de las siguientes acciones:
  + **Cambiar ajustes como el tiempo de espera, la memoria, las variables de entorno y el rol de ejecución:** haga clic con el botón derecho en el nombre de la función y, a continuación, seleccione **Actualizar la configuración de la función**.  
![\[Selección del comando Update Function Configuration (Actualizar configuración de función)\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/update-function-configuration.png)

    Rellene el cuadro de diálogo [Update Configuration (Actualizar configuración)](update-configuration-dialog.md) y, a continuación, elija **Update (Actualizar)**. 
  + **Cambiar ajustes como la carga de entrada**: en el menú principal, elija **Ejecutar**, **Editar configuraciones**. Rellene el cuadro de diálogo [Run/Debug Configurations (Configuraciones de ejecución/depuración)](run-debug-configurations-dialog.md) y, a continuación, elija **OK (Aceptar)**.  
![\[Selección del comando Edit Configurations )Editar configuraciones)\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/edit-configurations.png)

    Si faltan los detalles de configuración, primero expanda **Templates (Plantillas)**, **AWS Lambda** y, a continuación, elija **Local** (para la versión local de la función) o **Remote (Remota)** (para la versión remota de esa misma función). Elija **OK (Aceptar)**, y repita este procedimiento desde el principio.
  + **Cambiar los ajustes como el nombre del controlador de la función o el bucket de origen de Amazon Simple Storage Service (Amazon S3)**: haga clic con el botón derecho en el nombre de la función y, a continuación, seleccione **Actualizar código de función**.  
![\[Selección del comando Update Function Code (Actualizar código de función)\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/update-function-code.png)

    Complete el cuadro de diálogo [Update Code (Actualizar código)](update-code-dialog.md) y, a continuación, elija **Update (Actualizar)**.
  + **Cambiar otros parámetros de propiedades disponibles que no aparecen en las viñetas anteriores**: cambie esos ajustes en el archivo de plantilla de AWS SAM correspondiente a la función (por ejemplo, en un archivo llamado `template.yaml` dentro del proyecto). 

    Para obtener una lista de valores de opciones disponibles, consulte [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) en el repositorio [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) en GitHub. 

# Eliminación de una función de AWS Lambda mediante el AWS Toolkit for JetBrains
<a name="lambda-delete"></a>

Puede utilizar el AWS Toolkit para eliminar una función de AWS Lambda que forma parte de una aplicación de AWS sin servidor o puede eliminar una función de Lambda independiente.

Para eliminar una función de Lambda que forma parte de una aplicación de AWS sin servidor, omita el resto de este tema y consulte [Eliminación de una aplicación](sam-delete.md) en su lugar.

Para eliminar una función de Lambda independiente, haga lo siguiente.

1. Abra AWS Explorer, si aún no está abierto. Si necesita cambiar a una región de AWS distinta que contenga la función, hágalo ahora.

1. Expanda **Lambda**.

1. Haga clic con el botón secundario en el nombre de la función que desea eliminar y, a continuación, elija **Delete Function (Eliminar función)**.  
![\[Elija el comando Delete Function (Eliminar función)\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/lambda-delete.png)

1. Escriba el nombre de la función para confirmar la eliminación y, a continuación, elija **OK (Aceptar)**. Si la eliminación de la función se realiza correctamente, el AWS Toolkit for JetBrains elimina el nombre de la función de la lista **Lambda** .