Updating a tag on an EC2 KeyPair resource results in CloudFormation attempting to recreate the resource.

0

I created a KeyPair using CloudFormation. As per the documentation, the KeyName property is required, making this a custom named resource.

Howeve, the Tags property says that updates require no interruption, so I wouldn't expect the resource to be replaced in that case. The generated change set suggests that will be the case - notice that replacement = False, and details.requiresRecreation is never.

[
  {
    "resourceChange": {
      "logicalResourceId": "KeyPair",
      "action": "Modify",
      "physicalResourceId": "<resource>",
      "resourceType": "AWS::EC2::KeyPair",
      "replacement": "False",
      "moduleInfo": null,
      "details": [
        {
          "target": {
            "name": "Tags",
            "requiresRecreation": "Never",
            "attribute": "Properties"
          },
          "causingEntity": null,
          "evaluation": "Dynamic",
          "changeSource": "DirectModification"
        },
        {
          "target": {
            "name": "Tags",
            "requiresRecreation": "Never",
            "attribute": "Properties"
          },
          "causingEntity": "Version",
          "evaluation": "Static",
          "changeSource": "ParameterReference"
        }
      ],
      "changeSetId": null,
      "scope": [
        "Properties"
      ]
    },
    "hookInvocationCount": null,
    "type": "Resource"
  }
]

Yet when I make the change above, which is only updating one tag, and redeploy the CloudFormation template, the update fails.

CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename <resource> and update the stack again.

Enter image description here

I'm guessing there is a bug somewhere, but how can I avoid this, as this means that I can't update my CF template.

Thanks, David

profile picture
David
asked a year ago360 views
1 Answer
0

Hi David, I'm having the exact same situation and a stack that can be updated. Did you get any updates or answers from the AWS support about this issue?

Thanks, Bruno.

Bruno
answered 10 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions