HEADER_lecciones_de_software

Primeros pasos para crear una app Serverless desde cero

por Carlos Cardona y Guillermo Grajales, el 26 de agosto de 2019

crea-una-app-serveless-desde-cero

Las aplicaciones sin servidor, también conocidas como serverless, son más fáciles de desplegar, pues nos ayudan a ahorrar tiempo y demandan una menor cantidad de recursos. Con ellas no necesitas preocuparte por administrar un servidor ni por monitorear su funcionamiento. Solo debes encargarte del código.

Para crear una aplicación serverless desde cero, lo primero que debes hacer es preparar el entorno de desarrollo. En este artículo te explicaremos cómo. Continúa leyendo. 

Para crear una aplicación totalmente serverless, usaremos Amazon Web Services (AWS) y el entorno Node.js. Los servicios de Amazon que se utilizarán a lo largo de esta guía serán Amazon S3 Buckets, Amazon IAM, Amazon Lambda, Amazon API Gateway, Amazon CloudWatch, Amazon DynamoDB.

La aplicación que vamos a crear tiene las siguientes características:

  • Una página creada con Angular 6, que se hospeda en un S3 Bucket.
  • Una base de datos en DynamoDB.
  • Un par de funciones lambda con eventos http, métodos GET y POST.

Instalación de AWS CLI

Amazon provee una Interfaz de línea de comandos (CLI) que permite interactuar con los diferentes servicios que ofrece.

La CLI puede instalarse en los tres sistemas operativos principales: Mac, Distribución de Linux y Windows.

Windows (XP o superior): instalador MSI

Linux: comando: pip install awscli --upgrade --user (Python requerido v2.6.5+ o v3.3+)

Mac: comando: pip install awscli --upgrade --user (Python requerido v2.6.5+ o v3.3+)

Para consultar alternativas de instalación se puede visitar la siguiente dirección: Instalar AWS CLI

Verificar la instalación ejecutando en consola o terminal, el comando: aws --version.

app-serveless-01

Configuración de credenciales

Amazon recomienda utilizar usuarios creados a través de IAM (Identity and Access Management) para restringir el acceso a los diferentes servicios. Todo usuario de IAM posee un Access key ID y una Secret Access key, que son necesarias para configurar el entorno de trabajo local.

Creación de usuario en IAM

En caso de que no se le proporcione las keys de acceso mencionadas anteriormente, deberás disponer de una cuenta de AWS para acceder a la consola y a todos los servicios disponibles. Una vez crees la cuenta de AWS, debes acceder a la consola de IAM: https://console.aws.amazon.com/iam/.

app-serveless-02
En las imágenes puedes ver cómo crear un nuevo usuario desde la consola de IAM: selecciona primero la opción Users en el panel de la izquierda de la página, seguido de la opción Add user. Al presionar el botón, aparecerán las opciones que se muestran en la tercera imagen. Allí se debe elegir un nombre de usuario y habilitar la opción de Programmatic Access, que habilita las keys para configurar el acceso.

Presiona Next: Permissions para continuar.

En el próximo paso se pedirá la configuración de los permisos que tendrá dicho usuario, para lo cual Amazon ofrece tres posibilidades: añadir el usuario a un grupo, copiar los permisos de otro usuario y asignarle permisos directamente al usuario.

app-serveless-03

En esta sección se dejará el usuario sin permisos y posteriormente se explicarán los permisos necesarios para que todo funcione correctamente. Por lo tanto, en los permisos  debes seleccionar Attach existing policies directly y pulsar Next: Review

En el paso de Review se mostrarán los detalles del usuario y una advertencia indicando que el usuario no tiene permisos. Haz caso omiso a la advertencia y presionar Create user.

app-serveless-04

Configurar credenciales con la CLI

Una vez hayas creado un usuario, puedes proceder a configurar las credenciales a través de la CLI. Para ello se usa el comando: aws configure.

Las opciones que se deben configurar se muestran a continuación:

app-serveless-05

Las dos primeras opciones son las keys. Para obtenerlas se debe acceder nuevamente a la consola de IAM. Selecciona la opción Users. Ahí se listarán todos los usuarios creados. Haz clic en el usuario para obtener las keys, y te aparecerá la información como lo muestra la siguiente imagen:

app-serveless-06

Dirígete a la pestaña de Security credentials y ahí presiona el botón Create access key. Se mostrará una ventana con la ID key y la secret key:

app-serveless-07

Las dos opciones siguientes en la configuración de la CLI se pueden dejar como se muestra en esta guía, ya que la región us-east-1  es cercana a Colombia. Además, todos los servicios están disponibles en dicha región. El formato de salida puede ser json, text, or table. Si no se selecciona uno, quedará json asignado por defecto.

Nota: para actualizar la información de configuración basta con usar el comando aws configure y especificar los nuevos valores.

Es posible tener diferentes perfiles de configuración, lo cual se logra agregando una opción al comando de configuración, así:

app-serveless-08

Instalación de Node.js

Para instalar Node.js se puede acceder al siguiente enlace: descarga node.js. Este enlace lleva a la página oficial de descargas de Node.js, en la cual se puede encontrar el instalador para Windows, Mac y Linux. El instalador de Node.js incluye el manejador de paquetes npm.

Con el comando: node -v puedes verificar la instalación.

app-serveless-09Para npm

app-serveless-10

Instalación de serverless

Serverless es un framework que facilita la creación, la configuración y el despliegue de las funciones lambda de AWS. Este framework se instala como un paquete de npm, lo cual se logra con el siguiente comando:

app-serveless-11

Se puede verificar su instalación con serverless -v:

app-serveless-12

Este es el primer paso para preparar el ambiente de desarrollo de una aplicación serverless en AWS. En próximas entradas, te explicaré cómo hospedar una página de Angular en S3, de qué forma crear una función lambda con serverless framework  y cómo hacer una base de datos DynamoDB

Guía para crear una aplicación serverless en 4 pasos

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal