DEV Community

JPL
JPL

Posted on • Edited on

Template Anatomy CloudFormation

Anatomy task
Dokumentacija template anatomy

CloudFormation Template je deklaracija AWS resursa koje prave STACK. Template je spremljen kao tekstualni fajl u JSON notaciji ili YAML formatu. Obzirom da su to samo tekstualni fajlovi, mozemo ih kreirati, editovati u bilo kojem tekstualnom editoru i menadžovati ih u nasem source control sistemu sa ostatkom naseg source koda.

AWSTemplateFormatVersion: 'version date' (optional) # version of the CloudFormation template. Only accepted value is '2010-09-09'

Description: 'String' (opcionalno) # tekstualni opis CFormation template (u koju svrhu se koristi template)

Metadata: 'template metadata' (opcionalno) # objekti koji pruzaju dodatne informacija o template-u

Parameters: 'set of parameters' (opcionalno) # set ulaznih parametara (npr. naziv bucketa) koristenih za customize template-a (predloška)

Rules: 'set pravila' (opcionalno) # a set pravila na osnovu kojih validiramo parametre koji ce biti pruzeni od strane deploymenta/update-a 

Mappings: 'set of mappings' (opcionalno) # a mapping of keys and associated values

Conditions: 'set of conditions' (opcionalno) # conditions that control whether certain resources are created

Transform: 'set transformacija' (opcionalno) # za serverless app

Resources: 'set resoursa' (OBAVEZNO) # KOMPONENTE (EC2, S3 BUCKET, SG,ALB) NASE INFRASTRUKTURE

Hooks: 'set of hooks' (opcionalno) # Koristeni za ECS Blue/Green Deployments

Outputs: 'set outputa' (opcionalno) # vrijednosti koje su vracene kada god zelimo da vidimo stack opcije(properties) 
Enter fullscreen mode Exit fullscreen mode

Outputs znaju biti korisni u zavisnosti od toga koju vrstu template-a kreiramo i u koje svrhe.


Najbitnija opcija koju MORAMO DA IMAMO u kreiranju template-a kako bi kreirali stack, tj. prave resurse na AWS-u je:

Resources: 'set resursa' (OBAVEZNO) # komponente(serveri,security grupe,iam policy itd) koji cemo koristiti na svojoj infrastrukturi


STACK - KONKRETNI RESURSI KREIRANI U AWS-u CLOUDU (EC2,IAM,S3..)

Ispod se nalazi dijagram koji prikazuje kako iz jednog napisanog JSON fajla mozemo da uradimo upload na CloudFormation (alat za infrastrukturu kao kod) i da kreiramo Stack tj. konkretne resurse automatski bez manuelnog podesavanja svakog resursa od EC2 instance do bucketa na S3 servisu.

Mozemo kreirati preko 100-tinu stack-ova koristeci CFormation, a stack sadrzi kolekciju AWS servisa koje mozemo da menadžujemo (upravljamo) kao jednom jedinicom. SVI RESURSI UNUTAR AWS STACK-A SU DEFINISANI TEMPLATE-om.

BRISANJE RESURSA - nikada ne raditi manuelno!

Kada zelimo da izbrisemo resurse, to radimo tako da idemo na template pa izbrisemo template-a koji zelimo, na taj nacin automatski brisemo i sve resurse koje smo kreirali kroz stack.

AWS CloudFormation ce da KREIRA, AZURIRA (UPDATE) I IZBRISE U POTPUNOSTI STACK:

    - Ako stack ne moze da bude azuriran ili kreiran u potpunosti, onda ce AWS CLoudFormation da uradi ROLL BACK, prikaze greske i izbrise sve resurse koji su se eventualno kreirali pri pokusaju kreiranja i prije greske. 
    - Ako resurs ne moze da bude izbrisan, svi prethodni resursi se zadrzavaju dok cijeli stack ne bude uspjesno izbrisan.
Enter fullscreen mode Exit fullscreen mode

cf-stack-json

Jedan od incijalni poslova Stack-a je da kreira FIZICKE RESURSE BAZIRANE NA LOGICKIM RESURSIMA KOJI SU DEFINISANI UNUTAR TEMPLATE-a.

Za svaki logicki resurs (definisan unutar template-a), kada se Stack kreira, FIZICKI RESURS (EC2,S3 ...) je takodjer kreiran automatski (ukoliko nema template neku gresku).

Linkovi na povezane postove za CloudFormation:

  1. Jednostavni CFN template -drugi dio

Dodatna dokumentacija

  1. AWS Dokumentacija
  2. Template reference
  3. Security in AWS CFormation
  4. Najbolje prakse u CF
  5. Link na resurse i kako da ih koristimo u CloudFormation: AWS resource and property types reference
  6. YouTube reInvent AWS Deep Dive on AWS CloudFormation-2017

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more