如何在托管实例组级别的VM上设置环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在托管实例组级别的VM上设置环境变量相关的知识,希望对你有一定的参考价值。

我们正在使用queue based managed instance scaling。我们需要通过实例组在VM上设置环境变量(以便可以使用相同的VM映像来订阅不同实例组中的不同队列)。我在创建实例组时没有看到定义环境变量的选项。

有没有办法在多个实例组中使用相同的映像,并且仍然可以根据实例组级别的不同环境变量或其他方式实现不同的VM行为?

示例:使用相同的VM映像创建2个托管实例组。一个将环境变量'queue-name'设置为'queue-1',另一个将'queue-name'设置为'queue-2'。部署到第一个实例组中的VM的应用程序从pub / sub队列'queue-1'中提取任务,而在其他组中从'queue-1'中提取任务。

答案

使用两个模板相同的VM映像

为了创建具有相同VM行为的两个实例组,您可以使用两个不同的instance templates

通过这种方式,您将能够更改网络配置,启动和关闭脚本或元数据。

例如,您可以使用startup script来设置不同的环境变量,并以这种方式连接到一个。堡垒的例子像here

使用相同的模板相同的VM映像

另一方面,如果你不能使用两个不同的模板,我会建议一个小的黑客,但我想有几种方法可以做到这一点。

正如您所注意到的那样,没有直接的方法(因为有可能在模板创建中进行自定义)。

我将在启动脚本中添加一小部分代码,这些代码利用gcloud命令了解哪个是它所属的实例组的名称,并以此信息为基础以不同的方式设置环境变量。

通过这种方式,您只需要遵循命名实例的某种模式,但我相信您可以找到更优雅的解决方案。

或者您甚至可以根据机器的主机名做出决定(但我更喜欢这种解决方案)。

以上是关于如何在托管实例组级别的VM上设置环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Codedeploy 无法在新扩展的 VM 上运行

在片段中接收 NFC 的应用程序创建托管活动的新实例

要配置为侦听端口80和8080的VM实例组

如何在 Google Cloud Platform 中配置托管实例组和自动扩缩

如何永久设置Windows环境变量?

如何使用 Parse Server 设置类级别权限?