Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何在托管实例组级别的VM上设置环境变量_Google Cloud Platform_Google Compute Engine_Google Kubernetes Engine - Fatal编程技术网

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

Google cloud platform 如何在托管实例组级别的VM上设置环境变量,google-cloud-platform,google-compute-engine,google-kubernetes-engine,Google Cloud Platform,Google Compute Engine,Google Kubernetes Engine,我们正在使用。我们需要按实例组在VM上设置环境变量(以便可以使用相同的VM映像订阅不同实例组中的不同队列)。我看不到在创建实例组时定义环境变量的选项 有没有一种方法可以跨多个实例组使用相同的映像,并且仍然基于实例组级别的不同环境变量或其他方式实现不同的VM行为 示例:使用相同的VM映像创建2个托管实例组。一个环境变量“queue name”设置为“queue-1”,另一个环境变量“queue name”设置为“queue-2”。部署到第一个实例组中的VM的应用程序从发布/子队列“队列-1”中提取

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

有没有一种方法可以跨多个实例组使用相同的映像,并且仍然基于实例组级别的不同环境变量或其他方式实现不同的VM行为

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

使用两个模板和相同的VM映像 为了创建具有相同VM映像且具有不同行为的两个实例组,您完全可以使用两个不同的实例组

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

例如,您可以使用来设置不同的环境变量,并以这种方式连接到一个环境变量。我喜欢这个例子

使用相同的模板使用相同的VM映像 另一方面,如果你不能使用两个不同的模板,我会提出一个小技巧,但我想有几种方法可以做到这一点

正如您所注意到的,没有一种直接的方法可以做到这一点(因为在模板创建中已经有了定制的可能性)

我将在启动脚本中添加一小部分代码,使用
gcloud
命令可以理解它所属的实例组的名称,并基于此信息以不同方式设置环境变量

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


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

您好,我不确定我是否正确理解了您想要实现的目标,但我认为这是可能的。是否要根据同一映像所属的管理组(使用环境变量)来塑造该映像的行为?你能提供一个小例子来更好地解释它吗?谢谢@GalloCedrone的快速响应。我在这个问题上加了一个例子。该映像包含一个应用程序,该应用程序根据环境变量中设置的队列名称决定从发布/子队列中提取。