首页 > 解决方案 > 我可以检查脚本是在 Compute Engine 中还是在本地环境中运行?

问题描述

我只是想知道是否有办法检查 Python 脚本是在计算引擎内还是在本地环境中运行?

我想检查一下以了解如何进行身份验证,例如,当脚本在 Compute Engine 上运行并且我想启动 BigQuery 客户端时,我不需要进行身份验证,但是在本地运行脚本时我需要进行身份验证使用服务帐户 JSON 文件。

如果我知道脚本是在本地运行还是在计算引擎中运行,我就可以相应地启动 Google 服务。

我可以将初始化放入 try-except 语句中,但也许还有另一种方法?

任何帮助表示赞赏。

标签: pythonpython-3.xgoogle-cloud-platform

解决方案


如果我正确理解您的问题,我认为谷歌提供了一个更好的解决方案,称为应用程序默认凭据。请参阅在 Google Cloud 中安全地验证应用程序的最佳做法感谢 @sethvargo)和应用程序默认凭据

使用此机制,无论您在何处运行您的应用程序(在 GCP 上或在 GCP 外),身份验证都会变得一致。请参阅自动查找凭据

当您运行脱离 GCP 时,您设置GOOGLE_APPLICATION_CREDENTIALS为指向服务帐户。当您在 GCP 上运行时(并且,明确地说,您仍在进行身份验证,它只是透明的),您不需要设置环境变量,因为库会为您获取例如 Compute Engine 实例的服务帐户。


推荐阅读