node.js - 如何将环境变量注入在 sam local 下运行的 Lambda?
问题描述
我正在使用 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:
测试.json:
{
"LogicalIdOfLambdaHere":{
"ENV_VAR_KEY": "value"
}
}
确保逻辑 ID 与您的 sam 模板中定义的 ID 匹配。或者,您可以使用Parameters
而不是parameters
.
请注意,您还需要在实际的 SAM 模板中定义相同的变量。此方法用于覆盖模板中指定的值,而不是用于添加未在模板中定义的新值。变量也区分大小写:)
推荐阅读
- java - Dropwizard prometheus 不评估 URI 模板
- ubuntu - 无法在 Ubuntu 18.04 中安装 Deno
- cmake - 以编程方式获取 CMake 项目中的所有目标
- php - 将会话 ID 与带有字符串的列匹配,以根据登录用户获取特定结果
- reactjs - 在时间段的时间之间反应大日历
- python - 监督数据集上的 TF2 padded_batch
- sql - 通过计算 id 在数据库中出现的次数来更新总数
- php - 在php中通过curl使用instagram api
- javascript - 工具提示引导程序未显示
- authentication - 无法在浏览器上登录 Github,但在使用 vpn 或在 Github 桌面上登录时可以正常工作