Skip to content

Use Terraform to deploy a Falcon API in an AWS Lambda function

Notifications You must be signed in to change notification settings

raphaeljoie/python-falcon-lambda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deploy Python Falcon in AWS Lambda

1. create the lambda handler

Create a Falcon API in service.py,

# service.py
class QuoteResource:
    def on_get(self, req, resp):
        quote = {
            'quote': "Blabetiblou",
            'author': 'Raphaël JOIE'
        }

        resp.media = quote

api = falcon.App()
api.add_route('/quote', QuoteResource())
# requirements.txt
falcon

and import the API in a lambda_function.py file

# lambda_function.py

from service import api
from python_falcon_lambda import lambda_handler

lambda_handler = lambda_handler(api)
2. Build the lambda zip

Run Python Lambda Builder to package

$ docker run \
    --volume $(pwd):/workdir \
    --platform linux/amd64 \
    raphaeljoie/python-lambda-builder \
    ".terraform/*"

to generate build/lambda.zip

3. Deploy

Prepare the deployment

provider "aws" {
  region = "eu-west-1"
}

module "api" {
  source = "git:///python-falcon-lambda/terraform"

  lambda_bucket_name = "shared-lambda-bucket-name"
  lambda_name = "my-lambda"
  lambda_version = "v0.1.0"
}

output "api_url" {
  value = module.api.api_url
}

and terraform apply

TODO

About

Use Terraform to deploy a Falcon API in an AWS Lambda function

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published