Polymorphic Python

Polymorphic support for python works like so for the controller code:


class PostsController < ApplicationController
  python :python_example

You add your corresponding python code in the posts_controller/python folder:


from pprint import pprint
import json
import platform

def lambda_handler(event, context):
    message = 'PostsController#python_example hi from python %s' % platform.python_version()
    return response({'message': message}, 200)

def response(message, status_code):
    return {
        'statusCode': str(status_code),
        'body': json.dumps(message),
        'headers': {
            'Content-Type': 'application/json'

Notice, how with the python code, you must handle returning the proper lambda proxy structure to API Gateway.

Lambda console

On the function show page:

Default Handler Name

The default python handler name is lambda_handler. The default can be changed with the handler method. Example:


class PostsController < ApplicationController
  handler :handle
  python :python_example

The python code would then look something like this:

def handle(event, context):

You can also set the handler for the entire class. Example:

class PostsController < ApplicationController
  class_handler :handle
  # ...

Pro tip: Use the <- and -> arrow keys to move back and forward.

Edit this page

See a typo or an error? You can improve this page. This website is available on GitHub and contributions are encouraged and welcomed. We love pull requests from you!