Skip to content

aryanmaurya1/LiveLambda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiveLambda

A libray for building backends using AWS Lambda.

Make Your Servers Serverless 🤓

Requirements

  • boto3 python package.
    • Command to install Boto3
    • Linux or MAC : pip3 install boto3
    • Windows : pip install boto3
  • AWS CLI should be installed and user identity and region should be configured properly.
    • Here is a link to AWS official documentation on installing and configuring AWS CLI.
    • An AWS role arn with AWSLambdaBasicExecutionRole. To know more about how to create custom aws role click here.

Instructions

  • LiveLambda.py and you <source_file> should be in same directory.
  • Import LiveLambda class from LiveLambda.py file.

Example

from LiveLambda import LiveLambda

app = LiveLambda()

# Route with a single method attached to it.

@app.route("/", "GET")
def getIndex():
  return {"page" : str(app.request), "route" : "GET /"}

@app.route("/", "POST")
def postIndex():
  return {"page" : str(app.request), "route" : "POST /"}

# Route with url parameters.

@app.route("/user/{id}", "POST")
def routeWithParam(id):
  return {"page" : str(app.request), "route" : "POST /user/{id}"}


# Route with multiple methods attached to it.

@app.route("/dynamic", ["GET", "POST", "PUT", "PATCH", "DELETE"])
def routeWithMultipleMethods():
  return {"key" : str(app.request), "route" : "GET /user"}

# Your source file must containe a method which lambda runtime will invoke.
# Name of function must be same in deployment config file.

def lambda_handler(event, context):
  response = app.run(event, context)
  return response

Deployment

Format of config.json file

{
  "file_path": "<path_to_zip_file>",
  "lambda_role_arn": "<arn>",
  "function_name": "<lambda_function_name>",
  "handler_function": "<source_file>.<starting_function_name>",
  "api_name": "<cloudwatch_api_name>"
}

Instructions

  • Your source code must contain a config.json file which will contains deployment configuration and 'arn' of the role used by the AWS lambda to push the logs at AWS cloudwatch.

  • Make a single .zip file containing LiveLambda.py, <your_source_code>.py, and all_libraries_you_use(files and folders) .

  • your config.json and deploy.py should be in same folder.

  • Run deploy.py file.

    You will see messages on the terminal indicating the status of each stage. If all goes successful API base URL will be printed on terminal after completion of last stage.

About

A libray for building backends using AWS Lambda.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages