我需要使用CloudFormation模板为Auto Scaling组中的实例设置“Instance Protection”属性。
我通常在我的AWS控制台中这样做:EC2 - > Auto Scaling Groups
但我似乎无法在CloudFormation documentation
上找到它答案 0 :(得分:8)
可以使用CloudFormation完成,但这并不容易。
CloudFormation目前(截至2016年3月30日)未正式支持Auto Scaling实例保护功能。遗憾的是,CloudFormation往往落后于添加到底层AWS API的新功能,而且此功能在2015年12月7日仅为recently launched。
为了将来参考,要确认CloudFormation中是否更新了新功能,您最好的选择是参考CloudFormation release history以查看是否提及了所需的功能。
其他AWS软件开发工具包往往会更频繁地更新,因此您可以使用以下方法创建AutoScaling组。带有--new-instances-protected-from-scale-in
标志的AWS CLI create-auto-scaling-group
命令。
如果不在CloudFormation之外创建自动缩放组,则另一种(更复杂的)解决方法是在现有CloudFormation资源之上修补自定义资源,以使用新功能设置更新新创建的自动缩放组使用其中一个更新的SDK。它可以工作,但您需要创建一个lambda函数和所有支持IAM角色和权限,并将它们全部挂钩到一个自定义资源中。有关如何执行此操作以支持其他CloudFormation不支持的功能(将ACM证书附加到CloudFront分配)的示例,请参阅我的SO answer here。
当然,最简单的方法是等待AWS向CloudFormation添加对此功能的官方支持,因为他们最终会这样做。
答案 1 :(得分:2)
CloudFormation目前不支持此功能。
如果查看Autoscaling的CFN文档,它有一个TerminationProtection元素,它是一个字符串列表。我在文档中找不到可用选项列表,但是当我使用CLI时似乎没有任何相关内容:
$> aws autoscaling describe-termination-policy-types
{
"TerminationPolicyTypes": [
"ClosestToNextInstanceHour",
"Default",
"NewestInstance",
"OldestInstance",
"OldestLaunchConfiguration"
]
}
答案 2 :(得分:-1)
他们终于在 2020 年 10 月 26 日添加了此功能。