Use goformation for extending CFN
https://github.com/awslabs/goformation
Will hold on this until they resolve issues with short form intrinsic functions:
Warning: YAML short form intrinsic functions (e.g. !Sub)
While this library supports both JSON and YAML AWS CloudFormation templates, it cannot handle short form intrinsic functions in YAML templates (e.g. !Sub).
We will be adding support soon, however we need to patch Go's YAML library as it doesn't currently support tags.
If you use a short form intrinsic function today, you'll either get the unresolved value (if the recieving field is a string field), or the template will fail to parse (if it's recieving field is a non-string field).
This is fixed btw
@neekolas right on, thanks!
A challenge I have though is I need to read the CloudFormation template and then write it back out...with the intrinsic functions preserved, not evaluated. Any thoughts on this?