如何在Google Cloud Platform的Compute Engine中使用环境变量?

时间:2018-10-13 10:40:05

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

我有一个在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密钥,密码等,并将它们公开为env vars,以供应用程序读取。

有没有可用于此目的的控制台,标志或命令?

1 个答案:

答案 0 :(得分:0)

创建实例后,可以通过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

然后 重新启动终端 并单击

$ env

替代2:使用启动脚本

您还可以在start up script中使用export命令,使您的 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设置正常运行。 最好通过 restarting your instance 中的 the shell 或使用 { {3}}