无服务器检测本地运行

4

我正在运行以下类似的命令。

serverless invoke local --function twilio_incoming_call

当我在本地运行我的代码时,我计划检测并查找一个MOCK文件,而不是查找POST变量。
然而,我不知道如何检测是否使用这个本地命令来运行无服务器应用程序。
你该怎么做呢?
我在Serverless网站上搜索了很多关于本地运行的信息,却没有找到关于检测是否处于本地模式的内容。
3个回答

12

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


1
干得好!这是Serverless文档的链接:https://serverless.com/framework/docs/providers/aws/cli-reference/invoke-local/#environment - Juan M. Molina

6
如果您正在使用AWS Lambda,它有一些内置的环境变量。在缺少这些变量的情况下,您可以得出结论,您的函数正在本地运行。

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

const isRunningLocally = !process.env.AWS_EXECUTION_ENV

这种方法适用于任何框架,无论您使用的是无服务器、Apex UP、AWS SAM 等。

1

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

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

process.argv[2] 将等于 'invoke'

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接