
"Tags": [{"Key":"name","Value":"mytagname"},{"Key":"Version","Value":"123456"}] 但我需要生成
"Tags":[{"Key":"name","Value":"mytagname","PropagateAtLaunch":"true"},"Value":"123456","PropagateAtLaunch":"true"}] 适用的脚本部分是:
asg = autoscaling.autoScalingGroup("MyASG") asg.Tags = Tags(name = "mytagname",Version = "123456") t.add_resource(asg)解决方法 —-更新— 该功能已添加到主分支中,我只是留下我以前的答案以供参考,以防您无法访问最新版本的对流层(即如果您没有克隆存储库).您仍然可以在代码中使用短函数(第3个选项),但它仍然有效.
“标签”帮助类(来自对流层模块)不能生成ASG标签列表(键/值/传播),只能生成基本标签列表(键/值 – 例如EC2).
你可以使用troposphere.autoscaling.Tags类来模仿最新的,添加了“propagate”属性.
你可以像这样使用它:
asg.Tags = autoscaling.Tags(name = 'mytagname',Version = '123456')
您的所有标记都将PropagateAtLaunch属性设置为“true”.如果你想要一个不同的PropagateAtLaunch属性,只需这样写:
asg.Tags = autoscaling.Tags(name = 'mytagname',Version = '123456',NonPropagatedTag=('fail',False)) NonPropagatedTag标签不会传播(惊喜!)并且值为’fail’.
上一个答案:
您不能使用“标签”辅助类(来自对流层模块)来生成ASG标签列表(键/值/传播),只能使用基本标签列表(键/值).快速查看源代码将告诉您原因(https://github.com/cloudtools/troposphere/blob/master/troposphere/init.py)
它有三个选项:
>长&困难的方式:ASG标签列表(在对流层)只是一个包含三个键的dicts的python列表:name,Value和PropagateAtLaunch.所以你的代码看起来像:
asg.Tags= [{'Key':'name','Value':'mytagname','PropagateAtLaunch':'true'},{'Key':'Version','Value':'123456','PropagateAtLaunch':'true'}] 是的,丑陋的.
>只是更短一点:你可以使用autoscaling.Tag助手类而不是dicts,它有3个参数:标记键,标记值,传播.你必须编码:
asg.Tags= [autoscaling.Tag('name','mytagname','true'),autoscaling.Tag('Version','123456','true')] 如果你没有很多标签,或者只是在一个地方使用它,那没关系.但是标签助手类太棒了……
>使用另一个辅助类,生成ASG特定的标记列表.我刚刚在troposphere github存储库上做了一个pull请求,只需添加一点:
class TagsASG(troposphere.AWSHelperFn): defaultPropagateAtLaunch=True manyType=[type([]),type(())] def __init__(self,**kwargs): self.Tags = [] for k,v in sorted(kwargs.iteritems()): if type(v) in self.manyType: propagate=str(v[1]).lower() v=v[0] else: propagate=str(self.defaultPropagateAtLaunch).lower() self.Tags.append({ 'Key': k,'Value': v,'PropagateAtLaunch':propagate,}) def JsONrepr(self): return self.Tags 现在,您可以像这样使用它:
asg.Tags = TagsASG(name = 'mytagname',只需这样写:asg.Tags = TagsASG(name = 'mytagname',False))NonPropagatedTag标签不会传播(惊喜!)并且值为’fail’.
总结以上是内存溢出为你收集整理的python – 使用对流层进行云形成,如何在标记中添加“在发布时传播”全部内容,希望文章能够帮你解决python – 使用对流层进行云形成,如何在标记中添加“在发布时传播”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)