python - 我可以检查脚本是在 Compute Engine 中还是在本地环境中运行?
问题描述
我只是想知道是否有办法检查 Python 脚本是在计算引擎内还是在本地环境中运行?
我想检查一下以了解如何进行身份验证,例如,当脚本在 Compute Engine 上运行并且我想启动 BigQuery 客户端时,我不需要进行身份验证,但是在本地运行脚本时我需要进行身份验证使用服务帐户 JSON 文件。
如果我知道脚本是在本地运行还是在计算引擎中运行,我就可以相应地启动 Google 服务。
我可以将初始化放入 try-except 语句中,但也许还有另一种方法?
任何帮助表示赞赏。
解决方案
如果我正确理解您的问题,我认为谷歌提供了一个更好的解决方案,称为应用程序默认凭据。请参阅在 Google Cloud 中安全地验证应用程序的最佳做法(感谢 @sethvargo)和应用程序默认凭据
使用此机制,无论您在何处运行您的应用程序(在 GCP 上或在 GCP 外),身份验证都会变得一致。请参阅自动查找凭据
当您运行脱离 GCP 时,您设置GOOGLE_APPLICATION_CREDENTIALS
为指向服务帐户。当您在 GCP 上运行时(并且,明确地说,您仍在进行身份验证,它只是透明的),您不需要设置环境变量,因为库会为您获取例如 Compute Engine 实例的服务帐户。
推荐阅读
- keras - 由于 Python 操作而弄乱了 TensorBoard 图
- android - "inputType="none" 不适用于材质组件 ExposedDropdownMenu
- go - 数字常量的打印类型导致溢出
- java - zip 文件太大 aws lambda java gradle
- bash - $PATH 未在 .bash_profile 中设置
- opencv - V4L2 绝对曝光设置(几乎)没有效果
- haskell - Haskell 在 ADT 上的递归问题
- python - 如何让这个提示循环不止一次?
- javascript - 在 ASP.NET Core MVC 中使用 jQuery 动态生成 HTML 控件并更改 ID 属性
- c++ - 编程 - 使用 C++(第 2 版)示例的原理和实践未按预期工作