environment-variables - 如何将环境变量注入(inject)到 gcloud 计算实例创建的启动脚本中?

标签 environment-variables google-compute-engine gcloud

我正在使用 gcloudcomputeinstancecreate 命令创建 GCE 虚拟机,并使用 --metadata-from-files 参数传入启动 shell 脚本用于一些配置。

但是,我需要使用指定值预先填充各种环境变量,以便启动脚本正常工作。它们不能被硬编码到启动脚本中,因为对于我正在编写的整个脚本的不同用户来说,它们会有所不同(例如,传递到新实例的环境变量可能基于调用脚本的 $USER)。

我也尝试使用 --metadata 参数添加键值对,但这不起作用,并且引用的 shell 变量在启动脚本的执行中仍然未绑定(bind)。

如何发出 gcloud 计算实例创建命令来转发一组环境变量,这些变量将填充到环境中以便启动脚本使用它们?

--metadata 参数似乎应该是正确的,因为 docs说,

Metadata to be made available to the guest operating system running on the instances.

最佳答案

您应该能够使用此文档生成适当的 curl 命令来提取元数据: https://cloud.google.com/compute/docs/storing-retrieving-metadata

然后您可以使用提取的值来设置环境变量。

(已编辑以修复 URL。)

关于environment-variables - 如何将环境变量注入(inject)到 gcloud 计算实例创建的启动脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648495/

相关文章:

c# - 如何为新进程设置 AppData 文件夹?

java - 如何在 Windows 上用 Java 持久定义环境变量?

linux - 无法从外部访问端口(11444 和 5072)(在 Google 计算引擎上使用 Ubuntu)

mysql - 远程连接到 GCP Compute Engine 虚拟机上的 MySQL

ubuntu - Dyno 元数据未显示在 "env"输出中

java - 如何在mac上设置java环境变量

linux - 如何查看net-SNMP库设置的环境变量?

google-compute-engine - 如何跨项目共享谷歌计算引擎图像?

node.js - 获取新创建的主题时,Google PubSub 抛出 "Not found"

kubernetes - 使用gcloud和kubectl切换帐户是否有更好的工作流程?