- Can't have tags for the CloudFormation stack itself (needs to always use scripts)
- Add global template tags, which will be set on each taggable resource (i.e. company name, etc.)
- No tags on ElastiCache, CloudFront Distribution and maybe others
- Mappings should allow arbitrary levels (currently fixed to just 2)
- A mapping should be able to nest another mapping (via something like
{ "Mapping" : "..." }
) - Add JMESPath queries for mappings (via something like
{ "Fn::Query" : [ "MappingName", "JMESPath" ] }
)
DeletionPolicy
cannot be an{ "Fn::If" : [ ... ] }
- In Amazon RDS Security Group Rule it's
CIDRIP
, and elsewhere it'sCidrIp
- Several properties differ between Launch Configuration and EC2 Instance
- Needs immutable parameters that are set and referenced within the template, but not exposed to the user to change in the Console
- The limit of only 60 parameters per template is too low
- Outputs should be made available as quickly as their dependent values become available, not just at the end if the stack is launched successfully
- The data type of Boolean and Number is lost (all primitives get converted to a String) in embedded JSON files
Fn::Select
should allow for nested arrays (an array for indexes)- Update Stack should have a dry run capability explaining the changes and their order
- Macros - often resources differ slightly; there should be a way to define a parametrized macro/template
- Instead of supporting templates hosted only on S3, templates (and nested stacks) should allow for any URL allowing templates parameters to be passed as a JSON POST or in the query string
- A new function
Fn::Format
should produce a dynamic string based on parameters as usingFn::Join
is not unreadable and possibly a Jinja2 template