Search code examples
amazon-web-servicesaws-cloudformationssm

Is CloudFormation not suitable for creating SSM documents?


I'm wondering if creating SSM documents via CloudFormation actually makes sense or if instead I should use another mechanism.

My concern is, that when the content changes, CloudFormation actually creates a new document and destroys the old one. In that process also the name of the document changes. The name cannot be hardcoded or CloudFormation complains with:

CloudFormation cannot update a stack when a custom-named resource requires replacing

With permanently changing names its going to be impossible to reference the document anywhere.

I haven't seen a possibility to create a new document version via CFN, as I can do manually in the AWS console.

What's best practice here?

I know I can create a custom CFN resource and deal with the document update in a lambda. But ain't there a simple solution?


Solution

  • The challenge you describe has, I think, been solved or mitigated by the (recently released?) UpdateMethod property for AWS::SSM::Document. Now, you can specify NewVersion for that property, and that will create a new version of the same document and set it as the default version.

    See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-updatemethod