sum*_*mek 5 amazon-web-services aws-lambda
我想检测我的代码是否在AWS Lambda环境中执行.有没有一个好的,有记录的方法来做到这一点?
目前我依赖于环境变量LAMBDA_TASK_ROOT的存在,这在探索AWS Lambda Runtime Environment博客文章中有所描述.
Jos*_*son 13
您可以检查process.env属性:
const isLambda = !!(process.env.LAMBDA_TASK_ROOT || false);
if (isLambda) {
// You're on AWS Lambda
} else {
// Local or elsewhere
}
Run Code Online (Sandbox Code Playgroud)
感谢沃森/ IS-拉姆达的发现.
编辑:官方AWS源(包含更多env vars)https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html
如果您想检测您的代码是在本地 Lambda (aws-sam-cli) 还是真正的 Lambda 中运行,则可以使用AWS_SAM_LOCAL环境变量。
function isRunningLocalLambda() {
return process.env.AWS_SAM_LOCAL === 'true';
}
Run Code Online (Sandbox Code Playgroud)
处理此问题的最佳方法是自己进行跟踪。特别是,您可以在lambda入口点之后设置全局变量或环境变量。例如,在node.js中:
exports.handler = function(event, context, callback) {
process.env['LAMBDA_ENV'] = 'true';
...
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3507 次 |
| 最近记录: |