更改默认参数后,Cloudformation不会部署更改

red*_*888 3 amazon-web-services aws-cloudformation

我有这个模板:

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
Run Code Online (Sandbox Code Playgroud)

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

No changes to deploy. Stack mystack is up to date
Run Code Online (Sandbox Code Playgroud)

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

use*_*510 6

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

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

  • 赞成这个感觉是错误的,因为很难理解这个设计背后的原因。 (4认同)
  • 是的,它应该工作。如果您使用的是 `update-stack` 操作,则 aws cli 选项是 `--parameters`,如果您使用的是 `deploy` 操作,则选项是 `--parameter-overrides`。 (2认同)
  • 如果我传递不同的参数,它就不起作用。你知道@user818510 如果我只更改参数,我如何重新部署?(这会导致根据条件创造更多资源) (2认同)