Thuta Learning
ရှာဖွေရန်
IntermediateDevOpsintermediate

Variables

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Variables ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် terraform command/HCL code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

Config ထဲမှာ `instance_type = "t3.micro"` လို့ hardcode ရေးထားရင် environment (dev vs prod) ကူးတိုင်း code ကို manual ပြင်ရပါလိမ့်မယ် — Input Variable (`variable "name" { type = ... }`) ကို သုံးရင် value ကို run time မှာ ပေးပို့နိုင်ပါတယ် (command line flag, `.tfvars` file, environment variable, ဒါမှမဟုတ် default value)။ Variable ရဲ့ `type` (string, number, bool, list, map, object) ကို specify ထားရင် Terraform က value မှားရေးလိုက်ရင် apply မလုပ်ခင် error ပြပေးပါတယ်.

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

`variable "instance_type" { type = string; default = "t3.micro" }` လို့ define လုပ်ပြီး, resource block ထဲမှာ `instance_type = var.instance_type` လို့ reference လုပ်ရင်, `terraform apply -var="instance_type=t3.large"` (ဒါမှမဟုတ် `.tfvars` file) နဲ့ value ကို override လုပ်နိုင်ပါတယ် — dev environment အတွက် instance size သေးသေး, prod environment အတွက် instance size ကြီးကြီး ဆိုတာမျိုးကို config file တစ်ခုတည်းနဲ့ ကိုင်တွယ်လို့ရပါတယ်.

အတူတူ ကြည့်မယ်

hcl
variable "instance_type" {
  description = "EC2 instance size"
  type        = string
  default     = "t3.micro"
}

variable "environment" {
  type = string
}

resource "aws_instance" "web" {
  instance_type = var.instance_type
  tags = {
    Environment = var.environment
  }
}
You should see
$ terraform apply -var="environment=staging"
var.instance_type
  EC2 instance size

  Enter a value: (uses default "t3.micro" if left blank)

၅ မိနစ် စမ်းကြည့်

variable ၂ ခု (instance_type, environment) ကို define လုပ်ပြီး `-var` flag နဲ့ value ပေးပို့ကာ `terraform plan` run ကြည့်ပါ — value ကို default နဲ့ override ၂ မျိုးလုံး စမ်းကြည့်ပါ။

သတိလေးတစ်ချက်

`.tfvars` file ထဲမှာ sensitive value (password, API key) ရေးထားရင် git repository ထဲ commit မလုပ်မိအောင် `.gitignore` ထဲ ထည့်ထားပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • `variable "environment"` ကို default value မထားဘဲ, value မပေးဘဲ `apply` run ပြီး interactive prompt ရုတ်တရက် ပေါ်လာလို့ ရှုပ်ထွေးခြင်း
  • Sensitive variable (password) ကို `default` value ထဲ hardcode ထည့်ခြင်း — `.tf` file ကို commit ရင် leak ဖြစ်နိုင်ပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

variable ၂ ခု (instance_type, environment) ကို define လုပ်ပြီး `-var` flag နဲ့ value ပေးပို့ကာ `terraform plan` run ကြည့်ပါ — value ကို default နဲ့ override ၂ မျိုးလုံး စမ်းကြည့်ပါ။

You'll know it worked when: $ terraform apply -var="environment=staging" var.instance_type EC2 instance size Enter a value: (uses default "t3.micro" if left blank)

Variables | Thuta Learning