如何将环境变量注入 sam local 下的 Lambda 运行?
How do I inject environment variables to Lambda running under sam local?
我正在使用 AWS SAM 在本地开发 aws lambda。
我正在尝试注入环境变量,但没有成功。
Lambda 代码是:
exports.lambdaHandler = async (event, context) => {
console.log('INJECTED ENVIRONMENT:',JSON.stringify(process.env));
response = {
'statusCode': 200,
'body': "booo"
}
return response;
};
环境文件test.json是:
{
"parameters": {
"PPPPPPPPPPPPPPPPPPPPP1": "PPPPPPPPPPPPPPPPPPPPP1",
"PPPPPPPPPPPPPPPPPPPPP2": "PPPPPPPPPPPPPPPPPPPPP2",
"PPPPPPPPPPPPPPPPPPPPP3": "PPPPPPPPPPPPPPPPPPPPP3"
}
}
我是 运行 lambda。它运行正常,显示了预期的输出,除了我尝试定义的环境变量。
sam local invoke -e events/event.json -n test.json
我错过了什么?
环境变量文件需要遵循特定格式,具体取决于您要测试的 lambda 函数的逻辑 ID:
Test.json:
{
"LogicalIdOfLambdaHere":{
"ENV_VAR_KEY": "value"
}
}
确保逻辑 ID 与您的 sam 模板中定义的一致。或者,您可以使用 Parameters
而不是 parameters
。
请注意,您还需要在实际 SAM 模板中定义相同的变量。此方法用于覆盖模板中指定的值,而不用于添加未在模板中定义的新值模板。变量也区分大小写:)
我正在使用 AWS SAM 在本地开发 aws lambda。
我正在尝试注入环境变量,但没有成功。
Lambda 代码是:
exports.lambdaHandler = async (event, context) => {
console.log('INJECTED ENVIRONMENT:',JSON.stringify(process.env));
response = {
'statusCode': 200,
'body': "booo"
}
return response;
};
环境文件test.json是:
{
"parameters": {
"PPPPPPPPPPPPPPPPPPPPP1": "PPPPPPPPPPPPPPPPPPPPP1",
"PPPPPPPPPPPPPPPPPPPPP2": "PPPPPPPPPPPPPPPPPPPPP2",
"PPPPPPPPPPPPPPPPPPPPP3": "PPPPPPPPPPPPPPPPPPPPP3"
}
}
我是 运行 lambda。它运行正常,显示了预期的输出,除了我尝试定义的环境变量。
sam local invoke -e events/event.json -n test.json
我错过了什么?
环境变量文件需要遵循特定格式,具体取决于您要测试的 lambda 函数的逻辑 ID:
Test.json:
{
"LogicalIdOfLambdaHere":{
"ENV_VAR_KEY": "value"
}
}
确保逻辑 ID 与您的 sam 模板中定义的一致。或者,您可以使用 Parameters
而不是 parameters
。
请注意,您还需要在实际 SAM 模板中定义相同的变量。此方法用于覆盖模板中指定的值,而不用于添加未在模板中定义的新值模板。变量也区分大小写:)