Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set environment variables in AWS lambda using Python

I'm trying to set environment variables in AWS lambda using python

initially I have an environment variable stackname with no value in lambda configuration.

def lambda_handler(event, context):
    if os.environ["stackname"]:
        print("Not empty")
        print(os.environ["stackname"])
    else:
        print("its empty")
        os.environ["stackname"]="mystack"
        print(os.environ["stackname"])

Now I'm seeing weird intermittent behaviour here for the first I expect to print

its empty
mystack

and from thereon whenever I execute lambda it should print

Not empty
mystack

for initial couple of times it prints

Not empty
mystack

but after couple or more executions lambda prints below which is weird.

  its empty
    mystack

Please suggest if this is any other better way to set environment variables which gives consistent output.

like image 739
shiv455 Avatar asked Apr 12 '26 15:04

shiv455


1 Answers

AWS Lambda functions run inside of an Amazon Linux environment. Sequential invocations of the same Lambda function may result in the function running on the same environment or a different environment. By environment I mean computer, container, etc.

This means that you cannot reliably set environment variables and expect them to be there on the next invocation.

A better approach is to store your run-time variables in persistent storage such as DynamoDB.

like image 157
John Hanley Avatar answered Apr 15 '26 05:04

John Hanley



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!