Giter Club home page Giter Club logo

cloudwalk's Introduction

Cloudwalk Case

This project aims to create a Log parser proposed at https://gist.github.com/cloudwalk-tests/704a555a0fe475ae0284ad9088e203f1.

Two versions of the same parser were implemented. One version with Python running on a Lambda Function in AWS and another version running in Node locally on a docker container.

Python Implementation

The Python version of the case leverages Lambda Forge, a custom framework meticulously created by me to speed up Lambda development. Comprehensive documentation for Lambda Forge is accessible here.

Lambda Forge orchestrates a customizable CI/CD Pipeline on AWS CodePipeline, triggered automatically every time code is pushed to this repository. This pipeline includes pre-deployment unit testing, followed by integration testing, and finally Swagger documentation generation post-deployment.

alt text

The source code for the Lambda function resides within functions/log_parser.

functions
├── __init__.py
└── log_parser
    ├── __init__.py
    ├── config.py
    ├── expected_result.json
    ├── integration.py
    ├── main.py
    ├── quake.txt
    ├── quake_parser.py
    └── unit.py

The implementation of the Lambda function itself is encapsulated within main.py.

Access the parser Lambda function via the following endpoint:

https://dl60eatoa5.execute-api.us-east-2.amazonaws.com/prod/quake

Access the Swagger Docs via the following endpoint:

https://dl60eatoa5.execute-api.us-east-2.amazonaws.com/prod/docs

To execute unit tests, utilize the following command:

pytest -k "unit" .

For integration tests:

pytest -k "integration" .

Node.js Implementation

The Node.js parser is situated within the /node directory.

To deploy and run the Node.js parser, execute the following commands:

docker build -t cloudwalk .
docker run -p 3000:3000 cloudwalk

Access the endpoint via:

http://localhost:3000/games

Thank you for your attention!

Clean code always looks like it was written by someone who cares.
-- Michael Feathers

cloudwalk's People

Contributors

guipimenta-dev avatar

Watchers

 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.