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

3

我在 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密钥、密码等,我想将它们上传到我的实例中,并将它们公开为环境变量,以供我的应用程序读取。

是否有可用于此的控制台、标志或命令来自动化这个过程?


你可以像在其他电脑上一样做。更认真地说,你能再具体一点吗?你使用的是什么操作系统?你是如何创建计算引擎的?.... - undefined
1
在另一台电脑上,我会执行heroku config:set API_KEY=xxx命令。 - undefined
这可能是回答问题的一部分:https://dev59.com/e63la4cB1Zd3GeqPUvPe - undefined
1个回答

2
你可以在创建实例后,通过SSH连接connecting进行操作。
具体方法请参考设置环境变量的默认值。例如,使用export命令来设置区域和地区变量,如下所示:
$ export CLOUDSDK_COMPUTE_ZONE="us-central1-a"
$ export CLOUDSDK_COMPUTE_REGION="us-central1"

将这些环境变量设为永久性的方法如下: 方案一:使用bashrc文件 将以下导出命令包含在您的~/.bashrc文件中
您可以使用nano或vim来设置这些变量。
sudo nano ~/.bashrc

然后重新启动你的终端并检查。
$ env

备选方案2:使用启动脚本
您还可以在启动脚本中使用export命令,将元数据转换为环境变量。
在创建实例时,您可以直接将其放置在直接或通过类似以下文件的方式进行:
gcloud compute instances create vm-1 \
    --metadata-from-file startup-script=$HOME/startup.sh \
    --zone=us-west1-a

如果实例已经在运行,请按照说明设置正在运行的实例上的启动脚本
请记住,如果您使用此启动脚本的方法,则每次设置新变量时都需要手动运行脚本
无论选择哪种方法,请确保您的$ env设置正常工作。最好通过在shell中重启实例或使用控制台中的停止和启动按钮来重新启动实例再次检查它。

如果在部署之后重新创建一台机器会怎么样? - undefined
你可以使用实例模板。它允许你定义在创建具有相同配置的新虚拟机实例时要使用的实例属性,包括环境变量。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接