Giter VIP home page Giter VIP logo

api-gateway-builder's Introduction

API Gateway Build + Test Project

This is a project that was constructed to do the following:

  • Provide one step to build a simple API Gateway + Lambda function + Database app
  • Include the app router lambda code which is deployed with the rest of the build
  • Include a node.js router that allows for local testing of the app router code so it can be done without deploying

This project exists as a discovery and teaching tool. It was not built to serve the purpose of a particular project, but individual projects can use this as a guide to serve their own specific needs.

API Gateway Builder seeks to represent a project that is a pure IaC solution with no manual / physical management of architecture at all. Creation, maintenance, and destruction of infrastructure can be maintained as code consistently and each can be done with a minimal number of commands that can naturally be integrated continuously.

This project also seeks to provide examples of how to build infrastructure for development and avoiding some of the pitfalls required with server(less) development to include simulating infrastructure deployments locally.

Installation Instructions

Install the following if you do not have them:

Deployment Instructions

An initial build is required to set up the infrastructure for your personal development. Once you have set up the infrastructure, you shouldn't need to do this again unless you make modifications to the infrastructure itself.

Run deploy.sh to set up or modify the infrastructure.

Each time you make changes to the lambda functions, you can run provision/lambda.sh to deploy the lamdba functions only.

Running node . starts up the local express server for testing purposes.

Explanation of Deployment Steps

The deployment via deploy.sh will do each of the following:

  1. Convert swagger.yaml API definition to JSON. Currently the aws cli only supports swagger JSON importing, but yaml is easier for humans to deal with.
  2. terraform deploys the infrastructure
  • Sets up roles
  • Creates API Gateway
  • Sets up DynamoDB
  • Deploys the app router lambda function
  1. AWS CLI is used to import swagger definition into API
  2. API Gateway is hooked up to app router lambda

api-gateway-builder's People

Contributors

ajcrites avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.