aws-actions / aws-cloudformation-github-deploy

Deploys AWS CloudFormation Stacks
MIT License
251 stars 121 forks source link

How to specify UsePreviousValue #46

Open edmacdonald opened 4 years ago

edmacdonald commented 4 years ago

Is there a way to specify UsePreviousValue for parameter-overrides provided in-line rather than in a file?

In my case, some of the parameters are determined by the build (eg product version) and some maintained by operations (eg min/max ASG size). I want to UsePreviousValue for the ops params. The build param values are generated by build steps and are quite convenient to use inline.

Thanks, -Ed

pbrisbin commented 3 years ago

I found this issue because I am currently a little frustrated that that's not just how unspecified parameters work.

I have a deployed Stack named prod-services with existing values:

And I'm trying to deploy a change to one of them:

      - uses: aws-actions/aws-cloudformation-github-deploy@v1
        with:
          name: prod-services
          template: https://s3.amazonaws.com/infra.restyled.io/templates/prod/services.yaml
          parameter-overrides: "RestylerImage=${{ needs.image.outputs.image }}"
          no-execute-changeset: 1

And I'm getting the following errors:

The input is parameter-overrides, so I think it's reasonable to expect behavior of the analogous flag:

       --parameter-overrides  (string)  A  list  of  parameter structures that
       specify input parameters for your stack template. If you're updating  a
       stack  and  you don't specify a parameter, the command uses the stack's
       existing value. For new stacks, you must specify parameters that  don't
       have  a  default  value.  ...

I'd argue the current behavior, which is more like the --parameters options of (create|update)-stack, is a clear bug.

Is there something I'm missing here?