【问题标题】:Cloudformation won't deploy changes when default param is changed更改默认参数时,Cloudformation 不会部署更改
【发布时间】:2018-12-17 09:11:18
【问题描述】:

我有这个模板:

Parameters:
  ALBPort:
    Type: Number
    Description: The loab balancer port (how the app is accessed externally)
    Default: 8000 #changing this
  ...

Resources:
  ALBListener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    DependsOn: MyALB
    Properties:
      DefaultActions:
      - Type: forward
        TargetGroupArn: !Ref TargetGroup
      LoadBalancerArn: !Ref MyALB
      Port: !Ref ALBPort #changing this
      Protocol: HTTP

我更改了模板中的默认值,但是当我重新部署时:

No changes to deploy. Stack mystack is up to date

如果我像Port: 8001 那样静态更改它,CF 会看到更改

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    更改默认参数值不会更改堆栈中现有的参数值(如果参数已经有值)。默认值仅在您第一次在堆栈中引入参数时应用(在堆栈创建期间或在后续更新中添加新参数时)。之后,您需要在更新期间显式设置参数值。

    在您重新部署时,堆栈已经将参数ALBPort 设置为之前的默认值。因此,您的新默认设置只会在您使用模板创建新堆栈时应用。您需要在堆栈更新操作期间将ALBPort 的值设置为您的新值。

    【讨论】:

    • 所以如果我更新堆栈并将新参数从命令行传递给 cli 命令,它会更新它吗?
    • 是的,它应该可以工作。如果您使用的是 update-stack 操作,则 aws cli 选项为 --parameters;如果您使用的是 deploy 操作,则为 --parameter-overrides
    • 如果我传递不同的参数,它就不起作用。你知道@user818510 如果我只是更改一个参数,我该如何重新部署? (根据条件导致创造更多资源)
    猜你喜欢
    • 2012-02-14
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2021-06-20
    • 2020-12-12
    相关资源
    最近更新 更多