我们正在使用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'中提取任务。
答案 0 :(得分:2)
为了创建具有相同VM行为的两个实例组,您可以使用两个不同的instance templates。
通过这种方式,您将能够更改网络配置,启动和关闭脚本或元数据。
例如,您可以使用startup script来设置不同的环境变量,并以这种方式连接到一个。 Fort例如here。
另一方面,如果你不能使用两个不同的模板,我会建议一个小的黑客,但我想有几种方法可以做到。
正如您所注意到的那样,没有直接的方法(因为可以在模板创建中进行自定义)。
我会在启动脚本中添加一小部分代码,这些代码利用gcloud
命令了解哪个是它所属的实例组的名称,并以不同方式设置此信息为基础环境变量。
通过这种方式,您只需要遵循命名实例的某种模式,但我相信您可以找到更优雅的解决方案。
或者你甚至可以根据机器的主机名做出决定(但我更喜欢这个解决方案)。