试图找出在运行云函数时,是否有编程方法可以知道它是在dev(本地使用函数框架(还是在prod(部署(中运行。例如,在Google AppEngine中,我们可以通过知道它是在dev中运行还是在prod中运行
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
# Running in prod!
else:
# Running in dev!
GCF有什么相似之处吗?
谢谢!
所以,我发现了这篇博客文章:https://rominirani.com/google-cloud-functions-tutorial-using-environment-variables-20b4f0f82aa0
事实证明,在GCF环境中部署时有很多env-var。话虽如此,我不知道其中有多少存在于测试框架中,但我怀疑它们并不多。因此,您可以依赖于检查生产部署中是否存在一个env-var,而该env-var不存在于开发中。
例如,FUNCTION_REGION
是可能没有为框架设置的变量之一,因为框架可能不在乎它在哪个区域。
这有点粗糙,但它会起作用的。
如果你愿意的话,更为黑客的是,你可以在部署GCF时,设置你自己所依赖的env-var(这样,在这些变量随时间变化的情况下,你仍然是安全的(。