Introducción a las aplicaciones sin servidor - AWS Kit de herramientas para VS Code

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

En las siguientes secciones se describe cómo empezar a crear una Aplicación sin servidor de AWS desde el AWS Toolkit for Visual Studio Code mediante AWS Serverless Application Model (AWS SAM) y pilas de AWS CloudFormation.

Requisitos previos

Para poder crear una Aplicación sin servidor de AWS o trabajar con ella, deben cumplirse los siguientes requisitos previos.

nota

Es posible que las siguientes operaciones requieran que cierre o reinicie VS Code para que se completen los cambios.

  • Instalación de la interfaz de línea de comandos (CLI) de AWS SAM Para obtener instrucciones e información adicional acerca de cómo instalar la CLI de AWS SAM, consulte el tema sobre cómo instalar la CLI de AWS SAM en la Guía del usuario de AWS Serverless Application Model.

  • Identifique la región de AWS predeterminada en el archivo de configuración de AWS. Para obtener más información sobre el archivo de configuración, consulte el tema Opciones de los archivos de configuración y credenciales 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 más información sobre cómo configurar la cadena de herramientas desde el AWS Toolkit for Visual Studio Code, consulte el tema sobre cómo configurar la cadena de herramientas en esta Guía del usuario.

  • Instale la extensión de compatibilidad con el lenguaje YAML desde el Marketplace de VS Code. Es necesaria para poder acceder a la característica CodeLens de los archivos de plantilla de AWS SAM. Para obtener más información sobre CodeLens, consulte la sección CodeLens en la documentación de VS Code.

Permisos de IAM para aplicaciones sin servidor

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 acceso de lectura/escritura adecuado a los siguientes servicios:AWS CloudFormation, IAM, Lambda, Amazon API Gateway, Amazon 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 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 Credenciales de AWS IAM en esta Guía del usuario.

Crear una nueva aplicación sin servidor (local)

En este ejemplo se muestra cómo crear una aplicación sin servidor con el kit de herramientas para 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 de AWS.

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

  2. Elija Kit de herramientas de AWS: Crear aplicación de SAM de Lambda.

    Cuadro de diálogo Command Palette (Paleta de comandos).
    nota

    Si la CLI de AWS SAM no está instalada, aparecerá 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.

  3. Seleccione el tiempo de ejecución de la aplicación de AWS SAM.

    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 en la Guía para desarrolladores de AWS Lambda.

  4. 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

    Elige 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 basado en ARM64 en lugar del entorno predeterminado basado en x86_64 está disponible para los siguientes tiempos de ejecución:

    • nodejs12.x (ZIP e imagen)

    • nodejs12.x (ZIP e imagen)

    • python3.8 (ZIP e imagen)

    • python3.8 (ZIP e imagen)

    • python3.8 (ZIP e imagen)

    • python3.8 (ZIP e imagen)

    • java8.al2 con Gradle (ZIP e imagen)

    • java8.al2 con Maven (solo ZIP)

    • java8.al2 con Gradle (ZIP e imagen)

    • java8.al2 con Maven (solo ZIP)

    importante

    Debe instalar la versión de AWS CLI 1.33.0 o posterior para permitir que las aplicaciones se ejecuten en entornos basados en ARM64. Para obtener más información, consulte Requisitos previos.

  5. 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.

  6. 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)

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.

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

  3. 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)

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.

Comience a configurar el comportamiento de depuración mediante la característica CodeLens de VS Code para identificar una función de 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 característica CodeLens, consulte la sección Requisitos previos que aparece con anterioridad en este tema.

nota

En este ejemplo, va a depurar una aplicación que usa 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

  • Java: 8, 8.al2, 11

  • Go: 1.x

Su elección de lenguaje también afecta a la manera en que CodeLens detecta los controladores de Lambda válidos. Para obtener más información, consulte Ejecución y depuración de funciones de Lambda directamente desde el código.

En este procedimiento, utilizará la aplicación de ejemplo creada en la sección Crear una nueva aplicación sin servidor (local) anterior en este tema.

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

  2. En la carpeta de la aplicación (por ejemplo, my-sample-app), abra el archivo template.yaml.

    nota

    Si utiliza una plantilla con un nombre que no sea template.yaml, el indicador CodeLens no está disponible automáticamente en el archivo YAML. Esto significa que debe agregar manualmente una configuración de depuración.

  3. 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 indicador CodeLens de este recurso, seleccione Agregar configuración de depuración.

    Uso del indicador CodeLens en el archivo template.yaml para añadir una configuración de depuración.
  4. En la paleta de comandos, seleccione el tiempo de ejecución durante el cual se ejecutará la aplicación de AWS SAM.

  5. 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 es "template" para que la plantilla de AWS SAM sea el punto de entrada para 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 plantilla de AWS SAM. En este caso, es HelloWorldFunction de tipoAWS::Serverless::Function.

    Configuración del archivo launch.json para la depuración basada en plantillas.

    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.

  6. 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).

Sincronización de aplicaciones de AWS SAM

El AWS Toolkit for Visual Studio Code ejecuta el comando sam sync de la CLI de AWS SAM para implementar las aplicaciones sin servidor en la Nube de AWS. Para obtener más información sobre la sincronización de AWS SAM, consulte el tema Referencia de los comandos de la CLI de AWS SAM en la Guía del usuario de AWS Serverless Application Model.

El siguiente procedimiento describe cómo implementar sus aplicaciones sin servidor en la Nube de AWS con sam sync desde el kit de herramientas para VS Code.

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

  2. En la paleta de comandos, busque AWSy seleccione Sincronizar aplicación de SAM para empezar a configurar la sincronización.

    Comando para sincronizar una aplicación sin servidor.
  3. Elija la región de AWS con la que desea sincronizar la aplicación sin servidor.

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

  5. 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.

  6. 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.

  7. 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.

  8. 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.
    nota

    Para obtener más información sobre la sincronización, puede acceder a los registros del AWS Toolkit for Visual Studio Code desde la paleta de comandos.

    Para acceder a los registros del AWS Toolkit for Visual Studio Code desde la paleta de comandos, expanda Ver, elija Paleta de comandos, a continuación, busque AWS: View AWS Toolkits Logs y selecciónelo 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 Interacción con funciones de Lambda remotas de esta Guía del usuario.

Eliminación de una aplicación sin servidor de la nube de Nube de AWS

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

  1. Abra la AWS Explorador.

  2. 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 AWS CloudFormation.

  3. Abra el menú contextual (clic con el botón derecho) del nombre de la pila de AWS CloudFormation que corresponde a la aplicación sin servidor que desea eliminar y, a continuación, seleccione Eliminar pila de AWS CloudFormation.

  4. Para confirmar que desea eliminar la pila seleccionada, seleccione .

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 AWS CloudFormation en el Explorador de AWS.