{"id":19811041,"url":"https://github.com/accenture/openathon-2020-serverless","last_synced_at":"2025-02-28T13:18:49.652Z","repository":{"id":69875774,"uuid":"238437655","full_name":"Accenture/openathon-2020-serverless","owner":"Accenture","description":"Openathon VI - Custom Software Engineering","archived":false,"fork":false,"pushed_at":"2025-01-09T11:07:37.000Z","size":12884,"stargazers_count":12,"open_issues_count":1,"forks_count":10,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-01-11T06:51:51.466Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Accenture.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-05T11:47:39.000Z","updated_at":"2025-01-09T11:07:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c4e814d-bc65-440b-8151-4be33134aa26","html_url":"https://github.com/Accenture/openathon-2020-serverless","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Fopenathon-2020-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Fopenathon-2020-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Fopenathon-2020-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Fopenathon-2020-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Accenture","download_url":"https://codeload.github.com/Accenture/openathon-2020-serverless/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241156529,"owners_count":19919338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T09:24:32.430Z","updated_at":"2025-02-28T13:18:49.620Z","avatar_url":"https://github.com/Accenture.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"resources/header.png\"\u003e\n\u003c/p\u003e\n\n# Openathon VI - Serverless with AWS :rocket:\n\n## ¡¡Bienvenido al Openathon VI!!\n\nEn esta edición vamos a descubrir las características y funcionamiento de algunos de los servicios web de Amazon y particularmente aquellos que nos permiten desplegar y ejecutar aplicaciones en la nube sin necesidad de reservar o administrar ningún tipo de servidor. Este enfoque se encuadra en las soluciones conocidas como [Serverless](https://aws.amazon.com/es/serverless/), que cada día son más populares y que se están convirtiendo en un alternativa muy atractiva a los enfoques tradicionales, donde es necesario disponer de servidores, ya sea físicos o virtuales, que es necesario adquirir y administrar.\n\n[Amazon Web Services](https://aws.amazon.com/es/what-is-aws/), o de manera abreviada **AWS**, es un conjunto de servicios implementados y ofrecidos por Amazon en el marco de la *cloud computing*. **AWS Lambda** es uno de estos servicios y permite disponer de funciones para atender a diversos tipos de eventos sin tener que provisionar o adminitrar ningún tipo de servidor. El coste de estos servicios depende únicamente del tiempo de proceso que se consuma en su ejecución. En este Openathon, vamos a utilizar este servicio para dotar a nuestra aplicación basada en eventos de la lógica necesaria para su ejecución.\n\nAl final de este Openathon, tendrás la siguiente arquitectura serveless completamente funcional:\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"resources/diagram.png\"\u003e\n\u003c/p\u003e\n\nLos servicios que utilizaremos serán:\n\n1. **DynamoDB**. Servicio de base de datos no sql.\n2. **IAM (Identity and Access Management)**. Servicio para el control del acceso al resto de servicios.\n3. **S3**. Servicio de almacenamiento para publicar la aplicación Angular y contener las funciones lambda si las implementas en Java.\n4. **Cognito**. Servicio de autenticación de usuarios.\n5. **Lambda Functions**. Funciones de negocio.\n6. **API Gateway**. Gestiona las API REST que darán acceso controlado a las funciones Lambda.\n\nEl índice del contenido es el siguiente:\n\n1. [Introducción a Cloud-native, Serverless y Serverless en AWS](/introduction)\n2. [LAB 0. Pasos iniciales: Seguridad y Utilidades](/lab-00)\n3. [LAB 1. DynamoDB](/lab-01)\n4. [LAB 2. IAM: Creación de roles](/lab-02)\n5. [LAB 3. Crear función lambda: Events-List](/lab-03)\n6. [LAB 4. Crear API Gateway](/lab-04)\n7. [LAB 5. Cognito](/lab-05)\n8. [LAB 6. Securizar Get /events](/lab-06)\n9. [LAB 7. Finalizar la configuración del API Gateway](/lab-07)\n10. [LAB 8. Publicar la web en S3](/lab-08)\n\nPara la realización de los laboratorios, los participantes dispondrán de un usuario de formación con acceso a los servicios necesarios. Adicionalmente podrán también crearse su propia cuenta y gestionar los usuarios y los recursos necesarios para hacerlo. Las funciones lambda se presentan tanto en java como en python para que cada participante pueda utilizar el lenguaje que prefiera.\n\n## Visión General de la Aplicación\n\nLos trabajos los realizaremos sobre la aplicación \"Events\" que ya iniciamos en el IV Openathon dedicado a [Angular](https://github.com/Accenture/openathon-2019-angular). Nuestra aplicación nos permite crear y gestionar eventos. En ella, después de logarnos, podremos crear nuevos eventos, consultar los existentes, filtrar los que hemos generado nosotros...\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"resources/app.png\"\u003e\n\u003c/p\u003e\n\nEn este Openathon completaremos esta aplicación con los componentes necesarios para dotarla de seguridad y hacer que sea accesible desde internet.\n\nVamos por tanto a:\n\n* Añadir persistencia a la aplicación usando **DynamoDB**.\n* Proporcionarle un backend mediante **Lambda** y **API Gateway**.\n* Dotarla de seguridad con **Cognito** e **IAM**.\n* Hacerla accesible usando **S3**.\n\nPero primero vamos a introducir el significado del enfoque serverless.\n\n[Introducción \u003e](/introduction)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"resources/header.png\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccenture%2Fopenathon-2020-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccenture%2Fopenathon-2020-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccenture%2Fopenathon-2020-serverless/lists"}