无服务器检测 运行 本地

Serverless Detect Running Locally

我正在 运行 执行如下命令。

serverless invoke local --function twilio_incoming_call

当我在我的代码中本地 运行 时,我计划检测这一点,而不是寻找 POST 变量寻找我将提供的 MOCK 文件。

不过,我不知道如何使用此本地命令检测我是否 运行ning 无服务器。

你是怎么做到的?

我在无服务器网站上四处寻找,可以找到很多关于 运行ning 在本地的信息,但没有检测到 如果你在本地。

我找到了答案。 process.env.IS_LOCAL 将检测您是否在本地 运行。不知何故在他们的网站上错过了这个...

您还可以查看 process.argv 中的内容:

process.argv[1] 将等于 '/usr/local/bin/sls'

process.argv[2] 等于 'invoke'

process.argv[3] 将等于 'local'

如果您使用的是 AWS Lambda,它有一些 built-in 环境变量。在没有这些变量的情况下,您可以得出结论,您的函数在本地是 运行。

https://docs.aws.amazon.com/lambda/latest/dg/lambda-environment-variables.html

const isRunningLocally = !process.env.AWS_EXECUTION_ENV

无论您使用的是无服务器框架、Apex UP、AWS SAM 等,无论您使用何种框架,此方法都有效