// API callback
related_results_labels_thumbs({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$blogger":"http://schemas.google.com/blogger/2008","xmlns$georss":"http://www.georss.org/georss","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-4603622075690903012"},"updated":{"$t":"2023-10-23T04:18:30.735-07:00"},"category":[{"term":"AWS"},{"term":"AWS Certified Solutions Architect"},{"term":"Architect"},{"term":"Certification"},{"term":"AWS Certified Developer"},{"term":"AWS Certified SysOps Administrator"},{"term":"EC2"},{"term":"Course"},{"term":"Development"},{"term":"Cognito"},{"term":"Tutorial"},{"term":"SysOps Administration"},{"term":"CloudFront"},{"term":"News"},{"term":"S3"},{"term":"AutoScaling"},{"term":"Cordova"},{"term":"DynamoDB"},{"term":"ELB"},{"term":"IAM"},{"term":"Node.JS"},{"term":"PhoneGap"},{"term":"Security"},{"term":"Shared Responsibility"},{"term":"VPC"},{"term":"Amazon Aurora"},{"term":"Android"},{"term":"Denial of Service"},{"term":"EBS"},{"term":"IOS"},{"term":"NodeJS"},{"term":"RDS"},{"term":"AWS IoT"},{"term":"AWS Mobile Hub"},{"term":"Amazon Inspector"},{"term":"Amazon QuickSight"},{"term":"AngularJS"},{"term":"CloudTrail"},{"term":"Cloudformation"},{"term":"Dynamic"},{"term":"ECS"},{"term":"India"},{"term":"Internet of Things"},{"term":"Kinesis Firehose"},{"term":"MEAN"},{"term":"MariaDB"},{"term":"PIOPS"},{"term":"PhantomJS"},{"term":"ReactJS"},{"term":"Region"},{"term":"Route 53"},{"term":"Selenium"},{"term":"Trusted Adviser"},{"term":"WAF"},{"term":"Web Application Firewall"},{"term":"YAML"},{"term":"app"},{"term":"example"}],"title":{"type":"text","$t":"BackSpace Academy Blog"},"subtitle":{"type":"html","$t":"A blog about all things Amazon Web Services (AWS) and Cloud Certification."},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http:\/\/learn-aws.blogspot.com\/feeds\/posts\/default"},{"rel":"self","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/4603622075690903012\/posts\/default\/-\/example?alt=json-in-script\u0026max-results=6"},{"rel":"alternate","type":"text/html","href":"http:\/\/learn-aws.blogspot.com\/search\/label\/example"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"}],"author":[{"name":{"$t":"BackSpace Academy"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/15061292652079774775"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"1"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"6"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-4603622075690903012.post-5633300852660274272"},"published":{"$t":"2016-09-22T07:43:00.001-07:00"},"updated":{"$t":"2016-09-26T06:28:32.268-07:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"AWS"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Cloudformation"},{"scheme":"http://www.blogger.com/atom/ns#","term":"example"},{"scheme":"http://www.blogger.com/atom/ns#","term":"YAML"}],"title":{"type":"text","$t":"YAML and CloudFormation. Yippee!!!"},"content":{"type":"html","$t":"\u003Ch3 style=\"padding-top: 0px;\"\u003E\n\u003Cspan style=\"color: green; font-size: 16.25px;\"\u003EYAML\u003C\/span\u003E\u003Cspan style=\"color: brown; font-size: 16.25px;\"\u003E:\u003C\/span\u003E\u003Cspan style=\"font-size: 16.25px;\"\u003E \u003C\/span\u003E\u003Cb style=\"font-size: 16.25px;\"\u003EY\u003C\/b\u003E\u003Cspan style=\"font-size: 16.25px;\"\u003EAML \u003C\/span\u003E\u003Cb style=\"font-size: 16.25px;\"\u003EA\u003C\/b\u003E\u003Cspan style=\"font-size: 16.25px;\"\u003Ein't \u003C\/span\u003E\u003Cb style=\"font-size: 16.25px;\"\u003EM\u003C\/b\u003E\u003Cspan style=\"font-size: 16.25px;\"\u003Earkup \u003C\/span\u003E\u003Cb style=\"font-size: 16.25px;\"\u003EL\u003C\/b\u003E\u003Cspan style=\"font-size: 16.25px;\"\u003Eanguage\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cbr \/\u003E\nI spend a heck of a lot of time coding and, like many devops guys, love \u003Ca href=\"http:\/\/coffeescript.org\/\" target=\"_blank\"\u003ECoffeescript\u003C\/a\u003E, \u003Ca href=\"https:\/\/github.com\/pugjs\/pug\" target=\"_blank\"\u003EJade\u003C\/a\u003E, \u003Ca href=\"http:\/\/stylus-lang.com\/\" target=\"_blank\"\u003EStylus \u003C\/a\u003Eand \u003Ca href=\"http:\/\/yaml.org\/\" target=\"_blank\"\u003EYAML\u003C\/a\u003E. No chasing missing semicolons, commas and curly braces. I just write clean code how it should be and, at least twice as fast.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nJSON, like plain javascript, is a lot cleaner, quicker and easier to read when you remove all those curly braces, commas etc. YAML does just that!\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nAWS just announced support for YAML with CloudFormation templates. I would thoroughly recommend you check it out and start using YAML. It will make big difference to your productivity and, your templates will be much easier to read understand.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nYAML, like Coffeescript, Jade and Stylus, makes use of indenting in code to eliminate the need for braces and commas. When you're learning YAML, you can use a JSON to YAML converter (eg http:\/\/www.json2yaml.com) to convert your existing JSON to YAML.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch3\u003E\n(Very) Basics of YAML\u003C\/h3\u003E\n\u003Cb\u003ECollections using Indentation\u0026nbsp;\u003C\/b\u003Eeliminate the need for braces and commas with Objects:\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cb\u003EJSON\u0026nbsp;\u003C\/b\u003E\u003Cbr \/\u003E\n\"WebsiteConfiguration\": {\u003Cbr \/\u003E\n\"IndexDocument\": \"index.html\",\u003Cbr \/\u003E\n\"ErrorDocument\": \"error.html\"\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cb\u003EYAML\u003C\/b\u003E\u003Cbr \/\u003E\nWebsiteConfiguration:\u003Cbr \/\u003E\n\u0026nbsp; IndexDocument: index.html\u003Cbr \/\u003E\n\u0026nbsp; ErrorDocument: error.html\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cb\u003ESequences with Dashes \u003C\/b\u003Eeliminate the need for square brackets and commas with Arrays:\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cb\u003EJSON\u0026nbsp;\u003C\/b\u003E\u003Cbr \/\u003E\n[\u003Cbr \/\u003E\n\"S3Bucket\",\u003Cbr \/\u003E\n\"DomainName\"\u003Cbr \/\u003E\n]\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cb\u003EYAML\u003C\/b\u003E\u003Cbr \/\u003E\n\u0026nbsp; - S3Bucket\u003Cbr \/\u003E\n\u0026nbsp; - DomainName\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch3\u003E\nFull Example\u003C\/h3\u003E\nHere is a full example I created for S3. I'll let you be the judge which one is better!\u003Cbr \/\u003E\n\u003Ch4\u003E\nJSON:\u003C\/h4\u003E\n{\u003Cbr \/\u003E\n\"AWSTemplateFormatVersion\": \"2010-09-09\",\u003Cbr \/\u003E\n\"Description\": \"AWS CloudFormation Sample Template\",\u003Cbr \/\u003E\n\"Resources\": {\u003Cbr \/\u003E\n\"S3Bucket\": {\u003Cbr \/\u003E\n\"Type\": \"AWS::S3::Bucket\",\u003Cbr \/\u003E\n\"Properties\": {\u003Cbr \/\u003E\n\"AccessControl\": \"PublicRead\",\u003Cbr \/\u003E\n\"WebsiteConfiguration\": {\u003Cbr \/\u003E\n\"IndexDocument\": \"index.html\",\u003Cbr \/\u003E\n\"ErrorDocument\": \"error.html\"\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n},\u003Cbr \/\u003E\n\"DeletionPolicy\": \"Retain\"\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n},\u003Cbr \/\u003E\n\"Outputs\": {\u003Cbr \/\u003E\n\"WebsiteURL\": {\u003Cbr \/\u003E\n\"Value\": {\u003Cbr \/\u003E\n\"Fn::GetAtt\": [\u003Cbr \/\u003E\n\"S3Bucket\",\u003Cbr \/\u003E\n\"WebsiteURL\"\u003Cbr \/\u003E\n]\u003Cbr \/\u003E\n},\u003Cbr \/\u003E\n\"Description\": \"URL for website hosted on S3\"\u003Cbr \/\u003E\n},\u003Cbr \/\u003E\n\"S3BucketSecureURL\": {\u003Cbr \/\u003E\n\"Value\": {\u003Cbr \/\u003E\n\"Fn::Join\": [\u003Cbr \/\u003E\n\"\",\u003Cbr \/\u003E\n[\u003Cbr \/\u003E\n\"https:\/\/\",\u003Cbr \/\u003E\n{\u003Cbr \/\u003E\n\"Fn::GetAtt\": [\u003Cbr \/\u003E\n\"S3Bucket\",\u003Cbr \/\u003E\n\"DomainName\"\u003Cbr \/\u003E\n]\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n]\u003Cbr \/\u003E\n]\u003Cbr \/\u003E\n},\u003Cbr \/\u003E\n\"Description\": \"Name of S3 bucket to hold website content\"\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n}\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch4\u003E\nYAML:\u003C\/h4\u003E\n---\u003Cbr \/\u003E\nAWSTemplateFormatVersion: '2010-09-09'\u003Cbr \/\u003E\nDescription: AWS CloudFormation Sample Template\u003Cbr \/\u003E\nResources:\u003Cbr \/\u003E\n\u0026nbsp; S3Bucket:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; Type: AWS::S3::Bucket\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; Properties:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; AccessControl: PublicRead\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; WebsiteConfiguration:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; IndexDocument: index.html\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; ErrorDocument: error.html\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; DeletionPolicy: Retain\u003Cbr \/\u003E\nOutputs:\u003Cbr \/\u003E\n\u0026nbsp; WebsiteURL:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; Value:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; Fn::GetAtt:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; - S3Bucket\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; - WebsiteURL\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; Description: URL for website hosted on S3\u003Cbr \/\u003E\n\u0026nbsp; S3BucketSecureURL:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; Value:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; Fn::Join:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; - ''\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; - - https:\/\/\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; - Fn::GetAtt:\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; - S3Bucket\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; - DomainName\u003Cbr \/\u003E\n\u0026nbsp; \u0026nbsp; Description: Name of S3 bucket to hold website content\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cbr \/\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ca href=\"https:\/\/backspace.academy\/\" target=\"_blank\"\u003E\u003Cimg src=\"https:\/\/backspace.academy\/assets\/img\/logo.svg\" \/\u003E\u003C\/a\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http:\/\/learn-aws.blogspot.com\/feeds\/5633300852660274272\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http:\/\/learn-aws.blogspot.com\/2016\/09\/yaml-and-cloudformation-yippee.html#comment-form","title":"3 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/4603622075690903012\/posts\/default\/5633300852660274272"},{"rel":"self","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/4603622075690903012\/posts\/default\/5633300852660274272"},{"rel":"alternate","type":"text/html","href":"http:\/\/learn-aws.blogspot.com\/2016\/09\/yaml-and-cloudformation-yippee.html","title":"YAML and CloudFormation. Yippee!!!"}],"author":[{"name":{"$t":"BackSpace Academy"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/15061292652079774775"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"thr$total":{"$t":"3"}}]}});