

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.

# Introducción a las aplicaciones sin servidor
<a name="sam-get-started"></a>

En las siguientes secciones se describe cómo empezar a crear un a Aplicación sin servidor de AWS partir de AWS Toolkit for Visual Studio Code, usando AWS Serverless Application Model (AWS SAM) y CloudFormation stacks. 

## Requisitos previos
<a name="serverless-apps-assumptions"></a>

Antes de poder crear o trabajar con un Aplicación sin servidor de AWS, debe cumplir los siguientes requisitos previos.

**nota**  
Es posible que las siguientes operaciones requieran que cierre o reinicie VS Code para que se completen los cambios.
+ Instale la interfaz de línea de AWS SAM comandos (CLI). Para obtener información e instrucciones adicionales sobre cómo instalar la AWS SAM CLI, consulte el tema [Instalación de la AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) en esta *Guía AWS Serverless Application Model del usuario*. 
+ En el archivo de AWS configuración, identifique AWS la región predeterminada. Para obtener más información sobre el archivo de configuración, consulte el tema [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) en la *Guía del usuario de AWS Command Line Interface *.
+ Instale el SDK de su idioma y configure la cadena de herramientas. Para obtener información adicional sobre cómo configurar su cadena de herramientas, AWS Toolkit for Visual Studio Code consulte el tema sobre cómo [configurar su cadena de herramientas](setup-toolchain.md) en esta Guía del usuario.
+ Instale la [extensión de compatibilidad con el lenguaje YAML](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) desde el Marketplace de VS Code. Esto es necesario para poder acceder a la CodeLens función de los archivos de AWS SAM plantilla. Para obtener información adicional al respecto CodeLens, consulte la [CodeLens](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#codelens-show-actionable-context-information-within-source-code)sección de la documentación de VS Code 

## Permisos de IAM para aplicaciones sin servidor
<a name="serverless-apps-permissions"></a>

En el kit de herramientas para VS Code, debe tener un perfil de credenciales que contenga los permisos de AWS Identity and Access Management (IAM) necesarios para implementar y ejecutar aplicaciones sin servidor. Debe tener el read/write acceso adecuado a los siguientes servicios: IAM, Lambda CloudFormation, Amazon API Gateway, Amazon Simple Storage Service (Amazon S3) (Simple Storage Service (Amazon S3) y Amazon Elastic Container Registry (Amazon ECR).

Para obtener más información sobre cómo configurar la autenticación necesaria para implementar y ejecutar aplicaciones sin servidor, consulte la sección [Administración del acceso a los recursos y los permisos](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html) en la *Guía para desarrolladores de AWS Serverless Application Model *. Para obtener información acerca de cómo configurar sus credenciales, consulte la sección [AWS Credenciales de IAM](setup-credentials.md) en esta Guía del usuario.

## Crear una nueva aplicación sin servidor (local)
<a name="serverless-apps-create"></a>

Este procedimiento muestra cómo crear una aplicación sin servidor con el Toolkit for VS Code mediante. AWS SAM El resultado de este procedimiento es un directorio local en su host de desarrollo que contiene un ejemplo de aplicación sin servidor, que puede crear, probar, modificar e implementar localmente en la nube. AWS <a name="serverless-apps-create-proc"></a>

1. Para abrir la **paleta de comandos**, seleccione **Ver**, **Paleta de comandos** y, a continuación, introduzca **AWS**.

1. Elija **Kit de herramientas de AWS : Crear aplicación de SAM de Lambda**.  
![Cuadro de diálogo Command Palette (Paleta de comandos).](http://docs.aws.amazon.com/es_es/toolkit-for-vscode/latest/userguide/images/sam-create-app-cmdlet-updated.png)
**nota**  
Si la AWS SAM CLI no está instalada, aparece un error en la esquina inferior derecha del editor de VS Code. Si esto ocurre, verifique que cumple todas las [hipótesis y requisitos previos](#serverless-apps-assumptions).

1. Elija el tiempo de ejecución de su AWS SAM aplicación.
**nota**  
Si selecciona uno de los tiempos de ejecución con “(Imagen)”, su aplicación es el tipo de paquete `Image`. Si selecciona uno de los tiempos de ejecución sin “(Imagen)”, su aplicación es el tipo `Zip`. Para obtener más información acerca de la diferencia entre los tipos de paquetes `Image` y `Zip`, consulte [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 *.

1. Según el tiempo de ejecución que seleccione, es posible que se le pida que seleccione un administrador de dependencias y una arquitectura de tiempo de ejecución para su aplicación de SAM.

------
#### [ Dependency Manager ]

   Elija entre **Gradle** o **Maven**.

**nota**  
Esta posibilidad de selección de herramientas de automatización de compilaciones solo está disponible para los tiempos de ejecución de Java.

------
#### [ Architecture ]

   Seleccione entre **x86\_64** o **arm64**.

   La opción de ejecutar la aplicación sin servidor en un entorno emulado ARM64 basado en lugar del entorno predeterminado basado en x86\_64 está disponible para los siguientes tiempos de ejecución:
   + nodejs12.x (ZIP e imagen)
   + nodejs14.x (ZIP e imagen)
   + python3.8 (ZIP e imagen)
   + python3.9 (ZIP e imagen)
   + python3.10 (ZIP e imagen)
   + python3.11 (ZIP e imagen)
   + python3.12 (ZIP e imagen)
   + java8.al2 con Gradle (ZIP e imagen)
   + java8.al2 con Maven (solo ZIP)
   + java11 con Gradle (ZIP e imagen)
   + java11 con Maven (solo ZIP)

**importante**  
Debe instalar la AWS CLI versión 1.33.0 o posterior para permitir que las aplicaciones se ejecuten en entornos basados. ARM64 Para obtener más información, consulte [Requisitos previos](setup-toolkit.md#setup-prereq).

------

1. Elija una ubicación para el nuevo proyecto. Puede utilizar una carpeta de espacio de trabajo existente si está abierta, seleccionar una existente en **Select a different folder (Seleccionar una carpeta diferente)** o crear una nueva y seleccionarla. Para este ejemplo, elija **There are no workspace folders open (No hay carpetas de espacio de trabajo abiertas)** para crear una carpeta denominada `MY-SAM-APP`.

1. Escriba un nombre para el proyecto. Para este ejemplo, use `my-sam-app-nodejs`. Después de pulsar la tecla **Intro**, el kit de herramientas para VS Code tarda unos momentos en crear el proyecto.

Cuando se crea el proyecto, la aplicación se añade al espacio de trabajo actual. Debería aparecer en la ventana **Explorer**.

## Abrir una aplicación sin servidor (local)
<a name="serverless-apps-open"></a>

Para abrir una aplicación sin servidor en el host de desarrollo local, abra la carpeta que contenga el archivo de plantilla de la aplicación.

1. En el menú **Archivo**, elija **Abrir**.

1. En el cuadro de diálogo **Abrir carpeta**, navegue hasta la carpeta de la aplicación sin servidor que desee abrir.

1. Pulse el botón **Seleccionar carpeta**.

Al abrir la carpeta de una aplicación, se añade a la ventana del **explorador**.

## Ejecutar y depurar una aplicación sin servidor desde una plantilla (local)
<a name="serverless-apps-debug"></a>

Puede utilizar el kit de herramientas para VS Code para configurar cómo depurar las aplicaciones sin servidor y ejecutarlas localmente en su entorno de desarrollo.

Se empieza a configurar el comportamiento de depuración mediante la función VS Code para identificar una [CodeLens](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#codelens-show-actionable-context-information-within-source-code)función Lambda apta. CodeLens permite interacciones basadas en el contenido con el código fuente. Para obtener información sobre cómo garantizar el acceso a la CodeLens función, consulte la [Requisitos previos](#serverless-apps-assumptions) sección que aparece anteriormente en este tema.

**nota**  
En este ejemplo, depura una aplicación que utiliza JavaScript. No obstante, puede usar las características de depuración del kit de herramientas para VS Code con los siguientes lenguajes y tiempos de ejecución:  
C\#: .NET Core 2.1, 3.1; .NET 5.0
JavaScript/TypeScript — Node.js 12. *x*, 14. *x*
Python: 3,6, 3,7, 3,8, 3,9, 3,10, 3,11, 3,12
Java: 8, 8.al2, 11
Go: 1.x
La elección del idioma también afecta a la forma en que CodeLens detecta los controladores Lambda aptos. Para obtener más información, consulte [Ejecución y depuración de funciones de Lambda directamente desde el código](serverless-apps-run-debug-no-template.md).

En este procedimiento, utilizará la aplicación de ejemplo creada en la sección [Crear una nueva aplicación sin servidor (local)](#serverless-apps-create) anterior en este tema.

1. Para ver los archivos de su aplicación en el explorador de archivos de VS Code, seleccione **Ver**, **Explorador**.

1. Desde la carpeta de la aplicación (por ejemplo, *my-sample-app*), abra el `template.yaml` archivo.
**nota**  
Si utilizas una plantilla con un nombre diferente al de`template.yaml`, el CodeLens indicador no estará disponible automáticamente en el archivo YAML. Esto significa que debe agregar manualmente una configuración de depuración.

1. En el editor de `template.yaml`, vaya a la sección `Resources` de la plantilla que define los recursos sin servidor. En este caso, este es el recurso `HelloWorldFunction` de tipo `AWS::Serverless::Function`.

   En el CodeLens indicador de este recurso, selecciona **Añadir configuración de depuración**.  
![Utilice el CodeLens indicador del template.yaml archivo para añadir una configuración de depuración.](http://docs.aws.amazon.com/es_es/toolkit-for-vscode/latest/userguide/images/yaml_template_debug.png)

1. En la **paleta de comandos**, seleccione el tiempo de ejecución durante el cual se ejecutará la aplicación de AWS SAM .

1. En el editor del archivo `launch.json`, edite o confirme los valores de las siguientes propiedades de configuración:
   + `"name"`: ingrese un nombre fácil de leer para que aparezca en el campo desplegable **Configuration** (Configuración) de la vista **Run** (Ejecución).
   + `"target"`— Asegúrese de que el valor sea `"template"` tal que la AWS SAM plantilla sea el punto de entrada a la sesión de depuración.
   + `"templatePath"`: ingrese una ruta relativa o absoluta para el archivo `template.yaml`.
   + `"logicalId"`— Asegúrese de que el nombre coincida con el especificado en la sección **Recursos** de la AWS SAM plantilla. En este caso, es `HelloWorldFunction` de tipo`AWS::Serverless::Function`.  
![Configuración del archivo launch.json para la depuración basada en plantillas.](http://docs.aws.amazon.com/es_es/toolkit-for-vscode/latest/userguide/images/template_based_config_updated.png)

   Para obtener más información sobre estas y otras entradas del archivo `launch.json`, consulte [Opciones de configuración para depurar aplicaciones sin servidor](serverless-apps-run-debug-config-ref.md).

1. Si está satisfecho con la configuración de depuración, guarde el archivo `launch.json`. A continuación, pulse el botón de “reproducción” verde junto a **EJECUTAR** para iniciar la depuración.

   Cuando se inician las sesiones de depuración, el panel **DEBUG CONSOLE** (CONSOLA DE DEPURACIÓN) muestra la salida de la depuración y los valores devueltos por la función de Lambda. (Al depurar aplicaciones de AWS SAM , el **kit de herramientas de AWS ** se selecciona como el canal de **Salida** en el panel **Salida**).

## Sincronizar aplicaciones AWS SAM
<a name="serverless-apps-deploy"></a>

 AWS Toolkit for Visual Studio Code Ejecuta el comando AWS SAM CLI `sam sync` para implementar sus aplicaciones sin servidor en. Nube de AWS Para obtener información adicional sobre la AWS SAM sincronización, consulte el tema de [referencia de comandos de la AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) en la *Guía para AWS Serverless Application Model desarrolladores*

El siguiente procedimiento describe cómo implementar sus aplicaciones sin servidor `sam sync` desde el Nube de AWS Toolkit for VS Code.

1. En el menú principal de VS Code, abra la **paleta de comandos** expandiendo **Ver** y seleccionando **Paleta de comandos**. 

1. En la **paleta de comandos**, busque **AWS**y seleccione **Sincronizar aplicación de SAM** para empezar a configurar la sincronización.  
![Comando para sincronizar una aplicación sin servidor.](http://docs.aws.amazon.com/es_es/toolkit-for-vscode/latest/userguide/images/samsync032023.png)

1. Elija la AWS región con la que desea sincronizar su aplicación sin servidor.

1. Elija el archivo `template.yaml` que desea utilizar para la implementación.

1. Seleccione un bucket de Amazon S3 existente o introduzca un nombre de bucket de Amazon S3 nuevo para implementar la aplicación.
**importante**  
El bucket de Amazon S3 debe cumplir los siguientes requisitos:  
El bucket debe estar en la región en la que esté realizando la sincronización.
El nombre del bucket de Amazon S3 debe ser único globalmente para todos los nombres de buckets existentes en Amazon S3.

1. Si su aplicación sin servidor incluye una función con el tipo de paquete `Image`, ingrese el nombre de un repositorio de Amazon ECR que se pueda utilizar en esta implementación. El repositorio debe estar en la región en la que está realizando la implementación.

1. Seleccione una pila de implementación de la lista de sus implementaciones anteriores o cree una nueva pila de implementación introduciendo un nombre de pila nuevo. A continuación, inicie el proceso de sincronización.
**nota**  
Las pilas utilizadas en implementaciones anteriores se recuperan por espacio de trabajo y región.

1. Durante el proceso de sincronización, el estado de la implementación se registra en la pestaña **Terminal** de VS Code. Compruebe que la sincronización se ha realizado correctamente desde la pestaña Terminal. Si se produce un error, recibirá una notificación.  
![Ventana emergente de error al implementar una aplicación sin servidor.](http://docs.aws.amazon.com/es_es/toolkit-for-vscode/latest/userguide/images/sam-deploy-error.png)
**nota**  
Para obtener más información sobre la sincronización, puede acceder a los AWS Toolkit for Visual Studio Code registros desde la **paleta de comandos**.

   Para acceder a los AWS Toolkit for Visual Studio Code registros desde la paleta de comandos, expanda **Ver**, elija **Paleta de comandos** y, a continuación**AWS: View AWS Toolkits Logs**, búsquela y selecciónela cuando aparezca en la lista.

Cuando finalice la implementación, verá la aplicación en el **Explorador de AWS **. Para obtener más información acerca de cómo invocar la función de Lambda creada como parte de la aplicación, consulte el tema [Trabajar con AWS Lambda funciones](remote-lambda.md) de esta Guía del usuario.

## Eliminar una aplicación sin servidor del Nube de AWS
<a name="serverless-apps-delete"></a>

Eliminar una aplicación sin servidor implica eliminar la CloudFormation pila que implementaste anteriormente en la AWS nube. Tenga en cuenta que este procedimiento no elimina el directorio de la aplicación del anfitrión local.

1. Abra la [Explorador de AWS](aws-explorer.md).

1. En la ventana **Explorador del kit de herramientas de AWS **, expanda la región que contiene la aplicación implementada que desea eliminar y, a continuación, expanda **CloudFormation**.

1. Abre el menú contextual (haz clic con el botón derecho) para ver el nombre de la CloudFormation pila que corresponde a la aplicación sin servidor que deseas eliminar y, a continuación, selecciona **Eliminar CloudFormation ** pila.

1. Para confirmar que desea eliminar la pila seleccionada, seleccione **Sí**.

Si la eliminación de la pila se realiza correctamente, el kit de herramientas para VS Code elimina el nombre de la pila de la lista de CloudFormation en el **Explorador de AWS **.