我有两个文件:
MyLambdaFunction.py
config.json
我将这两个压缩在一起以创建 MyLambdaFunction.zip 。然后我通过AWS控制台将其上传到我的lambda函数。
config.json 的内容是各种环境变量。我需要一种方法来在每次运行lambda函数时读取文件的内容,然后使用里面的数据来设置运行时变量。
如何让我的Python Lambda函数读取一个文件的内容 config.json ,该文件是用源代码上传到zip文件中的?
答案 0 :(得分:5)
从@helloV向右推方向推出。
在python文件的顶部put" import os"
在您的函数处理程序中添加以下内容:
{
test: /\.less$/,
loader: 'style!css?importLoaders=2&sourceMap&localIdentName=[local]__[hash:base64:5]!less-loader'
},
{ test: /\.css/, loader: 'style!css?importLoaders=2&sourceMap&localIdentName=[local]__[hash:base64:5]' },
那一点,一行一行地执行以下操作:
这是config.json的样子:
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)
修改强> AWS lambda现在支持在控制台UI中直接使用环境变量。因此,如果您的用例与我的相同(即配置文件),则不再需要配置文件。
答案 1 :(得分:2)
试试这个。您上传的文件可以访问:
import os
os.environ['LAMBDA_TASK_ROOT']/config.json
答案 2 :(得分:1)
实际上,我更愿意判断正在运行的lambda的上下文来确定它应该使用的配置,而不是上传难以维护的不同的zip文件。
lambda_configs = {
"function_name_1":{
},
"function_name_2":
{
}
}
config = lambda_configs[context.function_name]