【问题标题】:How to use environment variables in Compute Engine on Google Cloud Platform?如何在 Google Cloud Platform 上的 Compute Engine 中使用环境变量?
【发布时间】:2019-03-09 10:45:54
【问题描述】:

我有一个在 Google Cloud Platform 上的 Compute Engine 中运行的应用程序,它读取系统环境变量。

我想知道如何将它们放入我的实例中,以便应用程序能够在运行时读取它们。

这是我创建实例的方式:

gcloud compute instances create ${PROJECT_ID} \
    --image-family debian-9 \
    --image-project debian-cloud \
    --machine-type g1-small \
    --scopes "userinfo-email,cloud-platform" \
    --metadata-from-file startup-script=${SCRIPT} \
    --metadata release-url=${BUCKET_URL} \
    --zone ${ZONE} \
    --tags http-server

我有一些安全凭证,例如我想上传到我的实例并将它们公开为环境变量以供我的应用程序读取的 API 密钥、密码等。

是否有任何可用的控制台、标志或命令来自动执行此操作?

【问题讨论】:

  • 与您在其他任何计算机上执行此操作的方式相同吗?更严重的是,你能更准确吗?您使用的是什么操作系统?您如何创建计算引擎? ....
  • @night-gold 在我做的其他电脑上heroku config:set API_KEY=xxx
  • 这可能是问题答案的一部分:stackoverflow.com/questions/52041092/…

标签: google-cloud-platform google-compute-engine


【解决方案1】:

创建实例后,您可以通过connecting 通过SSH 来完成。

set default values in environment variables中有解释。
例如,使用 export 命令 设置区域和区域变量,如:

$ export CLOUDSDK_COMPUTE_ZONE="us-central1-a"
$ export CLOUDSDK_COMPUTE_REGION="us-central1"

要使这些环境变量永久

Alternatif-1:使用 bashrc 文件

在您的 ~/.bashrc 文件中包含这些导出命令

你可以使用 nano 或 vim 来放置变量

sudo nano ~/.bashrc

然后重启你的终端和cek

$ env

Alternatif-2:使用启动脚本

您也可以在start up script 中使用导出命令,让您的metadata 成为环境变量。

在创建您的实例时,您可以将其放入 directly 或通过这样的文件:

gcloud compute instances create vm-1 \
    --metadata-from-file startup-script=$HOME/startup.sh \
    --zone=us-west1-a

如果实例已经在运行,请按照说明设置 startup script on a running instance

请记住,如果您使用此启动脚本的方法,那么每次设置新变量时都需要run the script manually

无论您选择何种方法,请确保您的$ env 设置正常工作。 最好通过 the shell 中的 restarting your instance 或使用您的 console 中的停止和开始按钮再次查看它em>。

【讨论】:

  • 部署后重新创建机器怎么办?
  • 您可以使用Instance Templates。它允许您定义在创建具有相同配置(包括环境变量)的新 VM 实例时要使用的实例属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 2015-02-16
  • 2020-08-27
  • 2019-03-21
相关资源
最近更新 更多