Openstack 如何动态更改自动缩放实例名称

Openstack 如何动态更改自动缩放实例名称,openstack,autoscaling,openstack-heat,Openstack,Autoscaling,Openstack Heat,我已经创建了一个热堆栈,它根据CPU使用情况自动缩放。每次创建新实例时,都会给它一个随机名称 是否有一种方法可以设置一个特定的名称,并在其末尾添加一个计数器,以便每次创建一个新实例时,它都会增加1 例如Myinstance1、Myinstance2、Myinstance3。。。MyinstanceX 提前谢谢 如果我理解正确,并且您是面向对象编程人员: 您正在寻找一个名为工厂的设计模式,或者更简单地说,创建一个静态成员,该成员将在构造函数中增加,并将添加到创建的实例的名称中。,堆栈资源名称使用堆

我已经创建了一个热堆栈,它根据CPU使用情况自动缩放。每次创建新实例时,都会给它一个随机名称

是否有一种方法可以设置一个特定的名称,并在其末尾添加一个计数器,以便每次创建一个新实例时,它都会增加1

例如Myinstance1、Myinstance2、Myinstance3。。。MyinstanceX


提前谢谢

如果我理解正确,并且您是面向对象编程人员:


您正在寻找一个名为
工厂
的设计模式,或者更简单地说,创建一个
静态
成员,该成员将在
构造函数
中增加,并将添加到创建的
实例
的名称中。

,堆栈资源名称使用堆栈名称进行操作,并以一个短的\u id作为后缀。这就是为什么在每个自动缩放的实例上都可以看到实例名称。这是在整个HEAT项目中实现的方式,不可能定义以增量数字为后缀的实例名称。

您可以通过转到“自动缩放组和标记”选项卡,然后添加一个带有“名称”键和“MyInstance”值的标记来设置自定义名称。编号没有多大意义,因为您的实例将不断启动和终止

于2020年9月21日更新:

似乎创造一个递增的数字到目前为止是不可能的,但我找到了一个解决办法来实现我的目标,所以在这里张贴,希望能给你一些想法

心态:
我试图找到随实例动态创建的东西(即数字),以便进行扩展,对我来说,这就是
OS::中子::Port
,因此我在字符串后附加了一部分IP地址,以获得每个实例的独特名称

解决方案:
1.创建一个端口<代码>操作系统::中子::端口
2.使用
Get\u attr
获取IP地址
3.使用
str\u Split

以点作为分隔符拆分 4.使用
str\u replace
将地址的一部分附加到字符串中

示例代码:

lb_server.yaml

资源:
corey_港:
类型:OS::中子::端口
特性:
网络:{get_param:network}
固定IP地址:
-子网:{获取参数:子网}
编号:
类型:OS::Heat::Value
特性:
价值:
#192.168.xxx.yyy=>[192168,xxx,yyy]
str_split:['.',{get_attr:[corey_端口,固定的_ip,0,ip_地址]}]
服务器:
类型:OS::Nova::Server
特性:
姓名:
str_替换:
模板:Corey-%last%
参数:
#  0   1   2   3
#[192168,xxx,yyy]
“last%”:{get_attr:[数字,值,3]}
味道:{get_参数:味道}
......

结果应该是Corey-168、Corey-50、Corey-254等等。

我应该说得更清楚。很遗憾,我没有使用OOP。在这种情况下,您使用什么语言?在这种非OOP语言中,它是什么意思?你能给出一个实例被随机命名的代码示例吗?我正在使用一个热模板来旋转一些openstack实例,然后自动缩放。这个模板是使用YAML语法定义的,很抱歉,但在这种情况下我似乎帮不了你。我对环境不太了解。好的,谢谢你。很高兴我现在知道这是不可能的!我快疯了!