

# Uso de aplicaciones de AWS sin servidor con el AWS Toolkit for JetBrains
<a name="sam"></a>

En los temas siguientes se describe cómo utilizar el AWS Toolkit for JetBrains para trabajar con aplicaciones sin servidor de AWS en una cuenta de AWS.

**Topics**
+ [Creación de una aplicación](deploy-serverless-app.md)
+ [Sincronización de una aplicación](sam-sync.md)
+ [Cambio (actualización) de la configuración de la aplicación](sam-update.md)
+ [Eliminación de una aplicación](sam-delete.md)

# Creación de una aplicación sin servidor de AWS mediante el AWS Toolkit for JetBrains
<a name="deploy-serverless-app"></a>

Para completar este procedimiento, primero debe instalar el AWS Toolkit 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, haga lo siguiente.

1. Con IntelliJ IDEA, PyCharm, WebStorm o JetBrains Rider ya en ejecución, realice una de las siguientes acciones:
   + Para IntelliJ IDEA o WebStorm, elija **Archivo**, **Nuevo**, **Proyecto**.
   + Para PyCharm, elija **Archivo** **Nuevo proyecto**.
   + Para JetBrains Rider, elija **Archivo**, **Nuevo** para una nueva solución. O bien, haga clic con el botón secundario en una solución existente en la ventana de herramientas del **Explorer (Explorador)** y, a continuación, elija **Add (Agregar)**, **New Project (Nuevo proyecto)**.

1. Para IntelliJ IDEA, elija **AWS**, **AWS Serverless Application** y, a continuación, elija **Siguiente**.  
![\[Elegir crear una aplicación sin servidor de AWS en IntelliJ IDEA\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/sam-create-intellij.png)

   Para PyCharm, elija **AWS Serverless Application**.  
![\[Elegir crear una aplicación sin servidor de AWS en PyCharm\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/sam-create-pycharm.png)

   Para WebStorm, elija **AWS Serverless Application**.  
![\[Elegir crear una aplicación sin servidor de AWS en WebStorm\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/sam-create-webstorm.png)

   Para JetBrains Rider, elija **AWS Serverless Application**.  
![\[Elegir crear una aplicación sin servidor de AWS en JetBrains Rider\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/sam-create-rider.png)

1. Rellene el [cuadro de diálogo Nuevo proyecto (o el cuadro de diálogo Nueva solución para JetBrains Rider)](new-project-dialog.md) y, a continuación, elija **Finalizar** (para IntelliJ IDEA) o **Crear** (para PyCharm, WebStorm o JetBrains Rider). El AWS Toolkit for JetBrains crea el proyecto y agrega los archivos de código de la aplicación sin servidor al nuevo proyecto.

1. Si está utilizando IntelliJ IDEA, con la ventana de herramienta **Proyecto** ya abierta y mostrando el proyecto que contiene los archivos de la aplicación sin servidor, siga uno de estos procedimientos:
   + Para proyectos basados en Maven, haga clic con el botón secundario en el archivo `pom.xml` del proyecto y, a continuación, elija **Add as Maven Project (Agregar como proyecto Maven)**.  
![\[Elegir agregar el archivo POM como un proyecto Maven\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/add-as-maven-project.png)
   + Para proyectos basados en Gradle, haga clic con el botón secundario en el archivo `build.gradle` del proyecto y, a continuación, elija **Import Gradle project (Importar proyecto Gradle)**.  
![\[Elegir importar el proyecto Gradle\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/import-gradle-project.png)

     Complete el cuadro de diálogo **Import Module from Gradle (Importar módulo desde Gradle)** y, a continuación, elija **OK (Aceptar)**.

Después de crear la aplicación sin servidor, puede ejecutar (invocar) o depurar la versión local de una función de AWS Lambda contenida en esa aplicación.

También puede implementar la aplicación sin servidor. Después de implementarla, puede (invocar) la versión remota de una función de Lambda que forma parte de esa aplicación implementada.

# Sincronización de aplicaciones de AWS SAM desde el AWS Toolkit for JetBrains
<a name="sam-sync"></a>

AWS Serverless Application Model (AWS SAM) `sam sync` es un proceso de implementación mediante comandos de la CLI de AWS SAM que identifica automáticamente los cambios realizados en las aplicaciones sin servidor y, a continuación, elige la mejor forma de crear e implementar esos cambios en la Nube de AWS. Si solo ha realizado cambios en el código de la aplicación sin cambiar la infraestructura, la sincronización de AWS SAM actualiza su aplicación sin tener que volver a implementar la pila de CloudFormation.

Para obtener más información sobre la `sam sync` y los comandos de la CLI de AWS SAM, consulte el tema [Referencia de comandos de la CLI de AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) en la *Guía del usuario de AWS Serverless Application Model*.

En las secciones siguientes se describe cómo comenzar a utilizar la sincronización de AWS SAM.

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

Antes de utilizar la sincronización de AWS SAM, se deben cumplir los requisitos previos siguientes:
+ Tiene una aplicación de AWS SAM en funcionamiento. Para obtener más información sobre la creación de una aplicación de AWS SAM, consulte el tema [Uso de AWS SAM](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam-create) en esta Guía del usuario.
+ Debe tener instalada la versión 1.78.0. (o posterior) de la CLI de AWS SAM. Para obtener información sobre la instalación de la CLI de AWS SAM, consulte [Instalación de la CLI de AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) en la *Guía del usuario de AWS Serverless Application Model*.
+ La aplicación se ejecuta en un entorno de desarrollo.

**nota**  
Para sincronizar e implementar una aplicación sin servidor que contenga una función de AWS Lambda con cualquier propiedad que no sea la predeterminada, las propiedades opcionales se deben establecer en el archivo de la plantilla de AWS SAM asociado a la función de AWS Lambda, antes de la implementación.  
Para obtener más información sobre las propiedades de AWS Lambda, consulte la sección [AWS::Serverless::Function](https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) en la *Guía del usuario de AWS Serverless Application Model* en GitHub.

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

Para empezar a trabajar con la sincronización de AWS SAM, complete el procedimiento siguiente.

**nota**  
Asegúrese de que su región de AWS se haya establecido en la ubicación asociada a la aplicación sin servidor.  
Para obtener más información sobre cómo cambiar su región de AWS desde el AWS Toolkit for JetBrains, consulte el tema [Cambio entre regiones de AWS](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-switch-region) de esta Guía del usuario.

1. Desde su proyecto de aplicación sin servidor en la ventana de la herramienta **Proyecto**, abra el menú contextual (haga clic con el botón derecho) de su archivo `template.yaml`.

1. Desde el menú contextual de `template.yaml`, elija **Sincronización de la aplicación sin servidor (anteriormente Implementación)** para abrir el cuadro de diálogo **Confirmar la pila de desarrollo**.

1. Confirme que está trabajando desde una pila de desarrollo para abrir el cuadro de diálogo **Sincronización de la aplicación sin servidor**.  
![\[Cuadro de diálogo Confirmar la pila de desarrollo\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/sam-sync-dev-stack.png)

1. Complete los pasos del cuadro de diálogo **Sincronización de la aplicación sin servidor** y, a continuación, seleccione **Sincronizar** para iniciar el proceso de sincronización de AWS SAM. Para obtener más información sobre el cuadro de diálogo **Sincronización de la aplicación sin servidor**, consulte la sección [Cuadro de diálogo Sincronización de la aplicación sin servidor](#sam-sync-serverless-app-dialog) que se encuentra a continuación.

1. Durante el proceso de sincronización, la **Ventana de ejecución** de AWS Toolkit for JetBrains se actualiza con el estado de implementación.

1. Tras una sincronización correcta, el nombre de su pila de CloudFormation se agrega al **Explorador de AWS**. 

   Si se produce un error en la sincronización, se proporcionan detalles de la solución de problemas en la **Ventana de ejecución** de JetBrains o los **registros de eventos** de CloudFormation. Para obtener más información sobre la visualización de registros de eventos de CloudFormation, consulte el tema [Visualización de los registros de eventos de una pila](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-cloudformation-logs) de esta Guía del usuario.

## Cuadro de diálogo Sincronización de la aplicación sin servidor
<a name="sam-sync-serverless-app-dialog"></a>

El **cuadro de diálogo Sincronización de la aplicación sin servidor** le ayuda con el proceso de sincronización de AWS SAM. Las siguientes secciones son descripciones y detalles de cada uno de los diferentes componentes del cuadro de diálogo.

### Creación o actualización de una pila
<a name="w7aac13c40c11c13b5"></a>

**Obligatorio:** para crear una nueva pila de implementación, introduzca un nombre en el campo proporcionado para crear y configurar la pila de CloudFormation para la implementación de la aplicación sin servidor. 

Alternativamente, para implementarla en una pila de CloudFormation existente, seleccione el nombre de la pila de la lista que se rellena automáticamente asociada a su cuenta de AWS.

### Parámetros de plantilla
<a name="w7aac13c40c11c13b7"></a>

**Opcional:** se rellena con una lista de parámetros detectados en su archivo `template.yaml` del proyecto. Para especificar los valores de los parámetros, introduzca un nuevo valor de parámetro en el campo de texto proporcionado, ubicado en la columna **valor**.

### S3 Bucket
<a name="w7aac13c40c11c13b9"></a>

**Obligatorio:** para elegir un bucket de Amazon Simple Storage Service (Amazon S3) existente en el que almacenar su plantilla de CloudFormation, selecciónelo de la lista.

Para crear y usar un bucket de Amazon S3 nuevo para almacenamiento, elija **Crear** y siga las instrucciones.

### Repositorio de ECR
<a name="w7aac13c40c11c13c11"></a>

**Obligatorio, solo visible cuando se trabaja con un tipo de paquete de imágenes:** elija un URI del repositorio de Amazon Elastic Container Registry (Amazon ECR) existente para implementar su aplicación sin servidor.

Para obtener más información sobre los tipos de paquetes de AWS Lambda, consulte la sección [Paquetes de implementación de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) en la *Guía para desarrolladores de AWS Lambda*.

### Capacidades de CloudFormation
<a name="w7aac13c40c11c13c13"></a>

**Obligatorio:** elija las capacidades que CloudFormation puede utilizar en la creación de pilas.

### Etiquetas
<a name="w7aac13c40c11c13c15"></a>

**Opcional:** introduzca las etiquetas que prefiera en los campos de texto proporcionados para etiquetar un parámetro.

### Creación de funciones dentro de un contenedor
<a name="w7aac13c40c11c13c17"></a>

**Opcional, Docker obligatorio:** al seleccionar esta opción, se crean las funciones de la aplicación sin servidor dentro de un contenedor Docker local, antes de la implementación. Esto es útil si la función depende de paquetes que tengan dependencias o programas compilados de forma nativa.

Para obtener más información, consulte el tema [Creación de aplicaciones](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html) en la *Guía para desarrolladores de AWS Serverless Application Model*.

# Cambio (actualización) de la configuración de la aplicación de AWS sin servidor mediante el AWS Toolkit for JetBrains
<a name="sam-update"></a>

En primer lugar, debe implementar la aplicación sin servidor de AWS que desea cambiar, si aún no la ha implementado.
**nota**  
Para implementar una aplicación sin servidor que contenga una función de AWS Lambda e implementar esa función con propiedades no predeterminadas u opcionales, primero debe establecer esas propiedades en el archivo de la 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. Con la ventana de la herramienta **Project (Proyecto)** ya abierta y mostrando el proyecto que contiene los archivos de la aplicación sin servidor, abra el archivo `template.yaml` del proyecto. Cambie el contenido del archivo para reflejar la nueva configuración y, a continuación, guarde y cierre el archivo.

1. Si necesita cambiar a una región de AWS diferente para implementar la aplicación sin servidor, hágalo ahora.

1. Haga clic con el botón secundario en el archivo `template.yaml` del proyecto y, a continuación, elija **Deploy Serverless Application (Implementar aplicación sin servidor)**.  
![\[Selección del comando Deploy Serverless Application (Implementar aplicación sin servidor)\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/deploy-serverless-application.png)

1. Rellene el cuadro de diálogo [Deploy Serverless Application (Implementar aplicación sin servidor)](deploy-serverless-application-dialog.md) y, a continuación, elija **Deploy (Implementar)**. AWS Toolkit for JetBrains actualiza la pila de AWS CloudFormation correspondiente para la implementación. 

   Si la implementación falla, puede intentar averiguar la razón consultando los registros de eventos de la pila.

# Eliminación de una aplicación de AWS sin servidor mediante el AWS Toolkit for JetBrains
<a name="sam-delete"></a>

Antes de eliminar una aplicación de AWS sin servidor, primero debe implementarla.

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

1. Expanda **CloudFormation**.

1. Haga clic con el botón secundario en el nombre de la pila de AWS CloudFormation que contiene la aplicación sin servidor que desea eliminar y, a continuación, elija **Delete CloudFormation Stack (Eliminar pila de CloudFormation)**.  
![\[Selección de la opción de eliminar la pila de AWS CloudFormation para una aplicación de AWS sin servidor comenzando desde el Explorador de AWS\]](http://docs.aws.amazon.com/es_es/toolkit-for-jetbrains/latest/userguide/images/sam-delete.png)

1. Escriba el nombre de la pila para confirmar la eliminación y, a continuación, elija **OK (Aceptar)**. Si la eliminación de la pila se realiza correctamente, el AWS Toolkit for JetBrains elimina el nombre de la pila de la lista de **CloudFormation** en el **Explorador de AWS**. Si la eliminación de la pila devuelve un error, puede intentar averiguar la razón consultando los registros de eventos de la pila.