🔧 Core Functions:

  • !Ref → get value of param or resource
  • !GetAtt → get attribute (e.g. !GetAtt EC2Instance.PublicIp)
  • !Sub → string interpolation (${})
  • !Join → concat strings
  • !If, !Equals, !Not, !Or, !And → conditions
  • !Select, !Split, !FindInMap → array/map helpers

🔄 Pseudo Parameters:

  • ${AWS::Region}
  • ${AWS::AccountId}
  • ${AWS::StackName}
  • ${AWS::Partition}
  • ${AWS::NoValue} → used to remove a property conditionally

🧩 Intrinsics & Helpers:

  • Mappings → key-value lookup table
  • Conditions → used to control resource creation
  • DependsOn → control resource dependency
  • Metadata → for tooling (e.g., cfn-init)
  • CreationPolicy, UpdatePolicy, DeletionPolicy → lifecycle control

📦 Template Sections:

  • Parameters → user inputs
  • Resources → actual AWS stuff
  • Outputs → expose values
  • Mappings, Conditions, Metadata, Rules