Skip to content

Instantly share code, notes, and snippets.

@nikolay
Last active August 29, 2015 14:17
Show Gist options
  • Save nikolay/8a4d79e528204d8ccde1 to your computer and use it in GitHub Desktop.
Save nikolay/8a4d79e528204d8ccde1 to your computer and use it in GitHub Desktop.
Amazon Web Services Pet Peeves

Tagging

  • 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

  • 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" ] })

Inconsistencies

  • DeletionPolicy cannot be an { "Fn::If" : [ ... ] }
  • In Amazon RDS Security Group Rule it's CIDRIP, and elsewhere it's CidrIp
  • Several properties differ between Launch Configuration and EC2 Instance

Misc

  • 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 using Fn::Join is not unreadable and possibly a Jinja2 template
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment