Taking advantage of a running Lambda function and it’s state

https://aws.amazon.com/blogs/compute/sharing-secrets-with-aws-lambda-using-aws-systems-manager-parameter-store/ under the section Lambda function has a nice “trick” of setting above the class app = None

then later on it will see if that is set

def lambda_handler(event, context):
    global app
    # Initialize app if it doesn't yet exist
    if app is None:
        print("Loading config and creating new MyApp...")
        config = load_config(full_config_path)
        app = MyApp(config)

    return "MyApp config is " + str(app.get_config()._sections)

If it is set it will not try to set it again but take advantage of the state and use it.

Keep Warm


You can set a bunch of schedulers and your Lambda function can check for the context of the request. If it is a scheduler event then just reply OK otherwise it should do what it normally would do.

import boto3
from config import Config

class KeepAwake:
    def __init__(self):
        """ keey awake """
        self.config = Config()
        self.region = self.config.region
        self.app_env = self.config.app_env
        self.client = boto3.client('lambda', region_name=self.region)
        self.functions = [

    def run(self):
        """ interate over lambda functions """
        for lam in self.functions:
            print("Invoking ", lam)
            print("Invoked ", lam)

Is another way to look around and call those functions.