Skip to content

Creación de API REST usando AWS SAM

 at 11:00

Desplegando un Sitio Web HTML con AWS S3 y Route 53

Mostraremos en este post las capacidades de AWS SAM (una alternativa al ya conocido Serverless Framework) para la creación de una API REST. Para ello vamos a hacer uso de una plantilla de AWS SAM que nos va a permitir agilizar el proceso de creación de la API REST. Esta plantilla se encuentra en este repositorio de GitHub:

template-ts-sam

Pre-requisitos

Para poder seguir este post es necesario tener instalado en el equipo:

Creación de la API REST

Para crear la API REST vamos a hacer uso de la plantilla de AWS SAM que se encuentra en el repositorio de GitHub indicado anteriormente. Para ello vamos a ejecutar el siguiente comando:

git clone https://github.com/Start-Cloud/template-ts-sam

Una vez descargado el repositorio, abrimos el proyecto con nuestro editor de código favorito y vamos a modificar el fichero template.yaml para que se ajuste a nuestras necesidades.

En este fichero vamos a modificar los siguientes parámetros:

Si queremos modificar el nombre del stack de CloudFormation que se va a crear, debemos modificar moficar el archivo samconfig.toml y cambiar el valor de la propiedad stack_name. En nuestro caso lo dejamos con el valor por defecto.

Instalación de dependencias

Para instalar las dependencias del proyecto vamos a ejecutar el siguiente comando:

npm install

Recursos de la API REST

Para crear recursos con AWS SAM debemos hacer uso de la propiedad Resources del fichero template.yaml.

En este caso la plantilla crea los siguientes recursos:

Como vamos a usar layer es necesario que en la Metadata se debe especificar que dependencias se deben considerar externas, en este caso se consideran externas las siguientes dependencias:

Despliegue de la API REST

Como primer paso para desplegar nuestra API REST, AWS SAM necesita hacer build de nuestro proyecto, para ello ejecutamos el siguiente comando:

sam build

Una vez que el proyecto ha sido construido, podemos desplegar nuestra API REST con el siguiente comando:

sam deploy --config-env "dev" --no-confirm-changeset

En este comando estamos indicando que queremos desplegar la API REST en el entorno dev y que no queremos confirmar los cambios que se van a realizar en CloudFormation.

Invocación de la API REST

Una vez que la API REST ha sido desplegada, podemos invocarla con el siguiente comando:

curl -X POST https://<api-id>.execute-api.<region>.amazonaws.com/dev/imc -d '{"height": 1.80, "weight": 80}'

En este comando estamos invocando la API REST con el método POST y la ruta /imc y estamos enviando los siguientes datos en el body de la petición:

{
  "height": 1.8,
  "weight": 80
}
Conclusiones

En este post hemos visto como crear una API REST con AWS SAM, para ello hemos hecho uso de una plantilla de AWS SAM que nos ha permitido agilizar el proceso de creación de la API REST. AWS SAM se presenta como una alternativa al ya conocido Serverless Framework ahora que la V.4 ha introducido una estructura de pagos por su uso.

Son parte de las herramientas que disponemos para crear soluciones que impulsan el crecimiento de las empresas que quieren entrar en la nube, así como también las que ya están aprovechando sus beneficios, de parte del equipo de START CLOUD te invitamos a conocer más.

Referencias