我有一个运行在Docker容器中的python程序。我的身份验证方法取决于容器是否部署在GCP中。理想情况下,我有一个这样的函数:
def deployment_environment():
# return 'local' if [some test] else 'cloud'
pass
检查这个最习惯的方法是什么?我的直觉是使用命名为[APP_NAME]_DEPLOYMENT_ENVIRONMENT
的环境,它可以以任何一种方式设置-但确保设置正确有太多可移动的部分。有GCP包/工具可以帮我检查吗?
我想到了两个解决方案:
与env在部署时设置一个env变量,如下所示:
gcloud functions deploy [function-name] --set-env-vars ENV_GCP=1
然后,在你的代码中:
import socket
def deployment_environment():
return 'cloud' if ('ENV_GCP' in os.environ) else 'local'
<表类>优点 缺点 的意图很明确,设置和使用env 更涉及 习惯用法 依赖于用户正确设置env 表类>