【问题标题】:Add Environment variables while creating a Google Compute Engine VM Instance在创建 Google Compute Engine VM 实例时添加环境变量
【发布时间】:2019-12-31 21:40:25
【问题描述】:

我正在通过 GCE 中的云功能创建一个 VM 实例。我想在创建过程中向该实例添加一些环境变量。 我指的是创建实例的代码:

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/compute/api/create_instance.py

我不想在启动脚本中添加它,因为我已经在启动脚本中运行了一组任务,并且我希望其中一个任务使用这些环境变量。有没有其他方法,比如在配置中传递值,同时创建实例?

【问题讨论】:

  • 你有没有找到合适的工作/解决方案?不知道为什么这很难做到。 :-)
  • 已经很久了,我不记得我是怎么做到的。我想我使用了一个配置文件,我在启动脚本期间将其复制到我的机器上。然后,无论哪个程序需要这些变量,我都从该文件中读取它,而不是使用环境变量。 @eddyizm

标签: python-3.x google-cloud-platform google-cloud-functions google-compute-engine google-deployment-manager


【解决方案1】:

当你创建一个新的 Cloud-Function 时,你可以展开底部菜单命名为:

环境变量、网络、超时等

并从那里设置您的环境变量。

编辑:我想在 main.py 上指定 Cloud-Function 本身使用环境变量。不过,您可能对Instance MetadataMetadata Server 感兴趣。

【讨论】:

  • 我不想在云函数中添加环境变量。我想将环境变量添加到我通过云功能创建的 VM 实例中。
  • 似乎没有一种简单的方法可以将环境变量添加到实例级别。但是,我发现这个主题 [1],DazWilkin 在评论中提出了一个解决方法。这可能会帮助你。 -- [1]:stackoverflow.com/questions/54702164/…
  • 嗯,我认为对我来说更好的解决方法是在实例中使用配置文件。
【解决方案2】:

您可以使用 gcloud 命令或通过 GCP Console [1] 设置环境变量:

通过使用 gcloud 命令: 您可以使用 --set-env-vars 标志在 gcloud 命令行中定义变量。

例如:

gcloud 函数部署 FUNCTION_NAME --set-env-vars env1=whatever,env2=whatever FLAGS...

*注意:环境变量的 --set-env-vars 和 --env-vars-file 标志是破坏性的。也就是说,它们将所有当前变量替换为部署时提供的变量。要进行附加更改,请使用下一节中描述的 --update-env-vars 标志。

例如:

gcloud 函数部署 FUNCTION_NAME --update-env-vars env1=whatever

通过 GCP 控制台

  1. 在 GCP Console 中打开函数概览页面:

    转到云功能概述页面。

  2. 点击创建函数。

  3. 为您的函数填写必填字段。

  4. 点击更多展开高级设置。

  5. 在环境变量部分,通过单击添加变量来设置变量。

参考资料: [1]https://cloud.google.com/functions/docs/env-var#setting_environment_variables

【讨论】:

  • 我不想在云函数中添加环境变量。我想将环境变量添加到我通过云函数创建的实例中。
  • 使用以下语法向模板添加环境变量:context.env["deployment"]
  • 您可以在此处找到有关使用环境变量的更多详细信息:cloud.google.com/deployment-manager/docs/configuration/…
猜你喜欢
  • 1970-01-01
  • 2015-09-27
  • 2016-01-30
  • 2016-10-07
  • 2014-08-10
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多