I have two files:
MyLambdaFunction.py
config.json
I zip those two together to create MyLambdaFunction.zip. I then upload that through the AWS console to my lambda function.
The contents of config.json are various environmental variables. I need a way to read the contents of the file each time the lambda function runs, and then use the data inside to set run time variables.
How do I get my Python Lambda function to read the contents of a file, config.json, that was uploaded in the zip file with the source code?
Figured it out with the push in the right direction from @helloV.
At the top of the python file put import os
Inside your function handler put the following:
configPath = os.environ['LAMBDA_TASK_ROOT'] + "/config.json"
print("Looking for config.json at " + configPath)
configContents = open(configPath).read()
configJson = json.loads(configContents)
environment = configJson['environment']
print("Environment: " + environment)
That bit right there, line by line, does the following:
Here is what the config.json looks like:
{
"environment":"dev"
}
EDIT AWS lambda now supports use of environmental variables directly in the console UI. So if your use case is the same as mine (i.e. for a config file) you no longer need a config file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With