YAML 101
Key/value pairs
YAML document consists of key/value pairs
Key/value pairs are separated by colon followed by space
Supports different data types
Integers
Floating-point numbers
Strings, enclosed with quotes if they have special symbols
Boolean
Binary
Dates, in ISO:8601 format
Null value
Name: Dave
Age: 25
GPA: 4.2
Occupation: Engineer
State: 'New Jersey'
About: "I'm a software engineer"
Score: null
Male: true
DateOfBirth: 1990-09-15T19:07:00Lists
YAML lists are indented with a dash
All items are on the same level
There are 2 types of writing arrays:
Block sequence - each entry indicated with a dash followed by a space
Flow sequence - all elements are on the same line, separated with commas and enclosed by [].
PeopleBlock:
  - John
  - Mike
  - Tom
  - Jake
PeopleFlow: [John, Mike, Tom, Jake]Dictionaries
A set of properties grouped under an item
Dictionaries contain key/value pairs
Dave:
  Age: 25
  GPA: 4.2
  Occupation: Engineer
  State: 'New Jersey'
  About: "I'm a software engineer"
  Score: null
  Male: true
  DateOfBirth: 1990-09-15T19:07:00Lists with Dictionaries
Personnel:
  - Dave:
      Age: 24
      Occupation: Engineer
      State: CA
  - Mike:
      Age: 30
      Occupation: Manager
      State: TX
  - John:
      Age: 40
      Occupation: Designer
      State: WALists with Dictionaries containing Lists
Personnel:
  - Dave:
      Age: 24
      Occupation: Engineer
      State: CA
      Degrees:
      	- Bachelor
      	- Masters
      	- PHD
  - Mike:
      Age: 30
      Occupation: Manager
      State: TX
      Degrees: [Bachelor, Masters]
  - John:
      Age: 40
      Occupation: Designer
      State: WA
      Degrees:
      	- MastersPipes
Pipe notation is also referred as literal block
All new lines, indentation, extra spaces are preserved
Resource:
  Name: My resource
  Description: |
    This is a description,
    with new lines and | special symbols
  Prop: valueGreater than
Also referred as folded block
Renders the text as a single line
All new lines will be replaced with a single space
Blank lines are converted to a new line character
Resource:
  Name: My resource
  Description: >
    This is a description,
    with new lines and | special symbols
    Will render everything as a single line
  Prop: valueComments
Comments are defined with '#' symbol
# resource definition
Resource:
  Name: My resourceAnchor / merge
Allows to define and reference blocks
CloudFormation has very limited support for anchors
MyAnchor: &a
  Prop1: value1
  Prop2: value2
AnotherPlace:
  <<: *a
  Prop3: value3Last updated
Was this helpful?