【问题标题】:Problem with cloudformation stack update and launch template version / autoscaling groupcloudformation 堆栈更新和启动模板版本/自动缩放组的问题
【发布时间】:2019-11-15 10:15:30
【问题描述】:

我在 cloudformation 中有一个堆栈(ECS 集群、App LB、Autoscaling Group、启动模板等)。它一切正常,我们已经在生产和预生产环境中使用了一段时间。

最近在尝试推送堆栈更新时出现了问题。我对 AWS::EC2::LaunchTemplate 中的 UserData 做了一些更改。如果我从这个模板启动一个新堆栈,它会很好用。
但: 如果我进行更改集并应用堆栈更新 cloudformation 创建一个新的启动模板版本 - 但是 - 自动缩放组仍然引用旧版本。 查看 AWS::AutoScaling::AutoScalingGroup LaunchTemplateSpecification 的 AWS 文档

我明白了: “AWS CloudFormation 不支持为模板版本号指定 $Latest 或 $Default。”

是否有人因堆栈更新而争吵创建需要在其他地方引用的新版本资源?我觉得我错过了一些明显的东西。

【问题讨论】:

  • 所以我开始想也许我可以用 UpdateReplacePolicy 解决这个问题,但我在文档中发现“UpdateReplacePolicy 仅在您更新其更新行为指定为替换的资源属性时才会执行,从而导致 AWS CloudFormation用具有新物理 ID 的新资源替换旧资源。“所以在我的情况下,它看起来会被忽略 - 变更集显示此资源将被更新而不是替换。

标签: amazon-cloudformation


【解决方案1】:

是的,我很笨: 使用 Fn::GetAtt 好吧,取笑我使用json而不是yaml

...

"ECSAutoScalingGroup": {
            "Type": "AWS::AutoScaling::AutoScalingGroup",
            "Properties": {
                "VPCZoneIdentifier": {"Ref" : "Subnets"},
                "MinSize": "1",
                "MaxSize": "10",
                "DesiredCapacity": { "Ref": "DesiredInstanceCount" },
        "MixedInstancesPolicy": {
             "InstancesDistribution" :
                    {
                     "OnDemandBaseCapacity" : "0",
                     "OnDemandPercentageAboveBaseCapacity" : { "Ref" : "PercentOnDemand"}
                    },
             "LaunchTemplate" : {
               "LaunchTemplateSpecification" : {
                      "LaunchTemplateId" : {"Ref" : "ECSLaunchTemplate"},
                      "Version" : { "Fn::GetAtt" : [ "ECSLaunchTemplate", "LatestVersionNumber" ] }
                       },
                    "Overrides" : [ {"InstanceType": "m5.xlarge"},{"InstanceType": "t3.xlarge"},{"InstanceType": "m4.xlarge" },{"InstanceType": "r4.xlarge"},{"InstanceType": "c4.xlarge"}]
                                   }
        }
      },

...

【讨论】:

  • 谢谢,我正在找这个
猜你喜欢
  • 2023-02-15
  • 1970-01-01
  • 2016-07-28
  • 2021-06-27
  • 2023-01-29
  • 2018-06-05
  • 1970-01-01
  • 2020-10-26
  • 2017-03-14
相关资源
最近更新 更多