【问题标题】:env variable GOOGLE_APPLICATION_CREDENTIALS last only one day on Google cloud环境变量 GOOGLE_APPLICATION_CREDENTIALS 在 Google 云上仅持续一天
【发布时间】:2018-05-29 12:14:31
【问题描述】:

在 Google 云的一部分 Google shell 中,我设置了环境变量 GOOGLE_APPLICATION_CREDENTIALS 因为 PHP NLP 项目需要它 [信息:https://cloud.google.com/natural-language/docs/quickstart-client-libraries#client-libraries-install-php]。我的项目运行良好,但我注意到变量 GOOGLE_APPLICATION_CREDENTIALS 在我的系统中仅持续一天。这是我第三次设置它。当我缺少必需的变量时,我的项目不起作用。难道我做错了什么?

编辑: 当您在 Google App 引擎上创建新应用程序时,它是默认操作系统 (Debian)。 当我在 Google shell 中输入帮助时,我会获得以下信息: 您的 5GB 主目录将在会话中持续存在,但虚拟机是短暂的并且将被重置 会话结束后大约 20 分钟。除此之外,系统范围内的任何变化都不会持续存在。

【问题讨论】:

    标签: google-cloud-platform google-cloud-shell google-natural-language


    【解决方案1】:

    您完全正确,Cloud Shell 正在一个临时实例上运行,该实例在会话结束后几分钟会重置,这就是您丢失您提到的环境变量内容的原因。

    关于limitations in Cloud Shell 的文档明确指出,它仅供交互式使用,任何非交互式会话或密集使用都可以在发出(或不发出)警告的情况下自动终止。

    因此,从您的问题中了解到您有一个正在使用 Cloud Natural Language 的后台脚本,我强烈建议您转移到 Compute Engine 的“真实”实例,您将在其中拥有更多控制权关于正在发生的事情。这将提供更大的灵活性,并且您将能够使用更大的机器类型,因为 Cloud Shell runs on a g1-small GCE instance 通常不足以运行应用程序。此外,根据您的用例,您甚至可以考虑App Engine

    话虽如此,我发现在构造LanguageClient 实例时,您也可能不使用应用程序默认凭据,而是使用keyFilekeyFilePath 变量(在the PHP Client Library reference 中解释)来传递JSON 密钥的路径直接指向您的代码,而不是从环境变量中读取。

    【讨论】:

    • 感谢您的回答。还有一件事,当我通过 gcloud 在我的 vm 实例上部署应用程序时,我会遇到密钥问题吗?
    • 我不确定您所说的在我的 VM 实例上通过 gcloud 部署应用程序是什么意思。如果您的意思是从 GCE 实例部署 App Engine 应用程序,则需要相应地设置凭据。但是,一般来说,您使用的任何与 GCP 相关的产品都会发生这种情况,您必须设置必要的凭据才能使用它(服务帐户、API 密钥...)。
    • 无论如何,如果它是一个值得自己提问的不同主题,请随时为此打开一个新问题,accept/upvote the answer if it was helpful for you
    【解决方案2】:

    假设您使用的是 Linux,请确保:

    【讨论】:

    • 它是 Linux。当您在 App 引擎上创建 App 时,它就是某种 Debian。
    • 当我在 Google shell 中输入帮助时,我注意到一句话:您的 5GB 主目录将在会话中持续存在,但虚拟机是短暂的,将在会话结束后大约 20 分钟重置。除此之外,系统范围内的任何变化都不会持续存在。
    • 您使用的是“抢占式”实例吗?另外,如果您有办法设置初始化脚本,您可以将凭证文件放在主目录中,并在初始化脚本中设置环境变量
    • 我使用的是您在 Google Cloud Platform 的应用引擎部分打开 Shell(右上角)时获得的默认 Debian。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2020-02-24
    • 1970-01-01
    • 2019-11-10
    相关资源
    最近更新 更多