我有一个在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,以供应用程序读取。
有没有可用于此目的的控制台,标志或命令?
答案 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}} 。