使用Troposphere和Python,我创建了一个AWS NLB。它工作得很好,我只是想给它添加一个新的属性;取消注册延迟。连接终止。启用";。但当我尝试更新我的诗节时,它不喜欢我的语法。
这是我要添加的带有TargetGroupAttribute的代码块。
my_target_group = t.add_resource(elb.TargetGroup(
"MyTargetGroup",
Name = 'MyTGName',
Port = os.getenv('PORT'),
Protocol = os.getenv('PROTOCOL'),
VpcId = MyVPCid.id,
HealthCheckIntervalSeconds = os.getenv('HEALTH_CHECK_INTERVAL_SECONDS'),
HealthCheckPort = os.getenv('PORT'),
HealthCheckProtocol = os.getenv('HEALTH_CHECK_PROTOCOL'),
HealthyThresholdCount = os.getenv('HEALTHY_THRESHOLD_COUNT'),
UnhealthyThresholdCount = os.getenv('UNHEALTHY_THRESHOLD_COUNT'),
TargetGroupAttribute = [
elb.TargetGroupAttribute(
Key='deregistration_delay.connection_termination.enabled',
Value='true'
)
],
Targets = build_tg_desc_lst(list_of_instances, os.getenv('PORT'))
))
它不喜欢";TargetGroupAttribute";我共享的代码块的部分。我得到错误";TargetGroup对象不支持属性TargetGroupAttribute";。
我用来添加属性的AWS文档就在这里。
如有任何建议或帮助,我们将不胜感激。谢谢
我解决了这个问题。我不确定为什么会出现这种情况,但我能够成功部署NLB,并通过以下方式启用了"取消注册"属性。
组织代码
TargetGroupAttribute = [
elb.TargetGroupAttribute(
Key='deregistration_delay.connection_termination.enabled',
Value='true'
)
]
新代码
TargetGroupAttributes = [
elb.TargetGroupAttribute(
Key='deregistration_delay.connection_termination.enabled',
Value='true'
)
]
通过在变量末尾添加"s",解决了此问题。