AZURE ÜZERİNDE TERRAFORM İLE ALT YAPI GELİŞTİRME – BÖLÜM 10 : CONDITIONAL LOGIC
Azure üzerinde Terraform ile Altyapı Geliştirme makale serisine hoş geldiniz. Yazı dizisinin onuncu bölümünde, Conditional Logic kavramını Terraform’a nasıl entegre edebileceğimize bakacağız. Terraform konfigürasyonları içinde koşullu mantık oluşturmak, daha dinamik bir konfigürasyon oluşturmaya izin verir. Bu, kodda daha fazla soyutlama ve mantık akışı sağlar. Daha fazla yeniden kullanılabilirlik sağladığı için Terraform içinde oluşturulabilecek mantıksal koşulları anlamak önemlidir.
İfade içindeki mantığa koşullu ifade denir. Aşağıdaki formatı takip eder:
condition ? true_val : false_val
Koşul doğruysa sonuç true_val olur. Koşul false ise sonuç false_val olur. Örneğin:
var.a != "" ? var.a : "default-a"
var.a boş bir dizeyse sonuç “default-a” olur, aksi takdirde var.a’nın gerçek değeridir.
- Şimdi örneğimizle başlayalım. Ana dizinde “modüller” klasörünü oluşturun ve bunun için bir depolama hesabı klasörü oluşturun. Depolama hesabı klasöründe main.tf dosyasını oluşturun ve aşağıdaki kodları ekleyin.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.40.0"
}
}
}
resource "azurerm_storage_account" "sa" {
name = var.saname
resource_group_name = var.rgname
location = var.location != "" ? var.location : "northeurope"
account_tier = "Standard"
account_replication_type = "GRS"
}
- Depolama hesabının konum kısmına dikkat ederseniz, bir koşul belirtilmiş olduğunu fark edebilirsiniz. Burada koşul doğru ise konum var.location, yanlış veya boş ise kuzey avrupa olarak ayarlanacaktır. ( != kullanımı eşitsizlik operatörüdür.)
- Şimdi storage-account klasörünün içinde variable.tf dosyasını oluşturun ve aşağıdaki kodları ekleyin.
variable "saname" {
type = string
description = "Name of storage account"
}
variable "rgname" {
type = string
description = "Name of resource group"
}
variable "location" {
type = string
description = "Azure location of storage account environment"
default = ""
}
- Konum değişkeninin içindeki boş dize, main.tf’deki koşullu mantığın tetikleyicisi olacaktır. Depolama Hesabı modülünün kullanıcısının bir konum değerini atlamasına ve modülün kendisi için varsayılan bir konum kullanmasına olanak tanır.
- Şimdi ana dizinde bir main.tf dosyası oluşturun ve aşağıdaki kodları ekleyin.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.40.0"
}
}
}
provider "azurerm" {
features {}
}
module "storage_account" {
source = "./modules/storage-account"
saname = "devcloudops0001"
rgname = "demo09"
}
module "storage_account2" {
source = "./modules/storage-account"
saname = "devcloudops0002"
rgname = "demo09"
location = "westeurope"
}
- Depolama Hesabı 1 için konumun belirtilmediğini, ancak depolama hesabı 2 için konumun westeurope olarak belirtildiğini unutmayın.
- Şimdi tüm .tf dosyalarını kaydedin ve “terraform apply” komutunu çalıştırın. Depolama Hesabı 1 konumu boş olduğundan, durum için yanlış olacak ve konumu kuzey avrupa olarak ayarlanacaktır. Ancak, depolama hesabı 2 konumu belirtildiğinden, koşul doğru görünecek ve konum batı avrupa olarak ayarlanacaktır.