Serverless Ecommerce
En este proyecto vamos a crear Ecommerce usando arquitectura Serverless de AWS.
Clonamos el repositorio:
git clone https://github.com/leonxrdon/AWS-serverless_ecommerce.git cd AWS-serverless_ecommerce
Para el correcto funcionamiento se debe tener activo los siguientes permisos:
Backend
Ahora vamos a instalar las dependencias necesarias para este proyecto:
cd backend sudo pip3 install boto3 npm install npm install -g serverless sls deploy --region <REGION>
Tras un despliegue exitoso, podemos ver la siguiente salida:
Como recomendación, crea una nueva terminal para tener listados los endpoints.
Ahora vamos a crear algunos artículos en nuestro stock:
python update_db.py 4 <REGION>
update_db.py
El script pone los elementos (en este caso 4) en nuestro DynamoDB. Asegúrese de usar la misma región que antes.
Frontend
cd ../frontend npm install -g yarn scottyjs yarn install
Ahora vamos a copiar el endpoint en el archivo frontend/src/config.js
Asegúrese de cambiar sólo a la parte de nombre host, y dejar la cuerda terminando con /dev
.
Antes de desplegar el frontend, nuestra S3 debe tener los permisos necesarios para que nos permita copiar los archivos necesarios para ver la web.
Activamos los permisos:
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>/*", "arn:aws:s3:::<BUCKET_NAME>" ] } ] }
Ahora podemos desplegar nuestro frontend:
npm run build
Ahora que se creo la carpeta /build
enviaremos esa carpeta a nuestro bucket para verlo desde el navegador:
aws s3 cp ./build s3://<BUCKET_NAME> --recursive
Para ver la web en el navegador se debe activar "Alojamiento de Web Estáticos" de la S3.
Ahora se mostrará un link de acceso público a la web.
Y finalmente podemos ver el Ecommerce desplegado: