Environment Variable Kavramı
Ortam değişkenleri, hassas bilgileri (şifreler, API anahtarları, sertifikalar) veya yapılandırma değerlerini güvenli bir şekilde saklamak için kullanılır. Apinizer’da ortam değişkenleri proje seviyesinde tanımlanır ve iki tipte olabilir:- Global (Tüm Ortamlar): Tüm ortamlarda aynı değeri kullanır
- Environment-Specific (Ortam Özelinde): Her ortam için farklı değerler tanımlanabilir
Şifreleme Desteği
Seviye Bazlı
Güvenlik
Yeniden Kullanım
Environment Variable Çözümleme Akışı
Aşağıdaki diyagram, environment variable’ların runtime’da nasıl çözümlendiğini ve environment’a göre değerlerin nasıl alındığını gösterir:Environment Variable Türleri
Şifrelenmiş (Encrypted)
Şifrelenmemiş (Unencrypted)
Şifrelenmiş Değişkenler
Şifrelenmiş Değişkenler
- Şifreler: Veritabanı şifreleri, API anahtarları
- Sertifikalar: SSL/TLS sertifikaları
- Token’lar: OAuth token’ları, JWT secret’ları
- Diğer Hassas Bilgiler: Güvenlik gerektiren tüm değerler
Şifrelenmemiş Değişkenler
Şifrelenmemiş Değişkenler
- URL’ler: Backend API URL’leri
- Port Numaraları: Port değerleri
- Flag’ler: Boolean değerler
- Diğer Yapılandırmalar: Genel yapılandırma değerleri
Environment Variable Seviyeleri
Environment-Level (Ortam Seviyesi)
Project-Level (Proje Seviyesi)
Environment-Level Kullanım Senaryoları
Environment-Level Kullanım Senaryoları
- Ortam bazlı backend URL’leri
- Ortam bazlı API anahtarları
- Ortam bazlı yapılandırma değerleri
- Ortam bazlı veritabanı bağlantı bilgileri
Project-Level Kullanım Senaryoları
Project-Level Kullanım Senaryoları
- Proje bazlı yapılandırma değerleri
- Proje bazlı API anahtarları
- Proje bazlı genel ayarlar
- Proje bazlı ortak değerler
Environment Variable Öncelik Sırası
Değişken çözümleme sırası (yüksekten düşüğe):1. Environment-Level Encrypted
2. Environment-Level Unencrypted
3. Project-Level Encrypted
4. Project-Level Unencrypted
Çalışma Mantığı
1. Tanımlama
- Global: Tüm ortamlarda aynı değer
- Environment-Specific: Her ortam için farklı değer
2. Kullanım
${variableName} formatında kullanılır- Backend adresi:
${BACKEND_URL} - Veritabanı:
jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME} - API anahtarı:
${API_KEY}
3. Runtime Çözümleme
- Değişken ifadeleri tespit edilir
- Ortam değeri alınır
- Secret’lar decrypt edilir
- Gerçek değerle değiştirilir
Örnek Senaryo
Örnek Senaryo
- Development:
BACKEND_URL = dev-api.example.com - Production:
BACKEND_URL = api.example.com - Yapılandırmada:
${BACKEND_URL}
- Development ortamında:
dev-api.example.com - Production ortamında:
api.example.com
Environment Variable Kullanım Formatı
Ortam değişkenleri, yapılandırma alanlarında özel bir format kullanılarak referans edilir.Format Yapısı
| Format | Açıklama | Örnek |
|---|---|---|
${variableName} | Temel kullanım formatı | ${BACKEND_URL} |
text${variableName} | Metin ile birleştirme | https://${API_HOST} |
${variableName}text | Metin ile birleştirme | ${API_PORT}/api |
text${variable1}text${variable2} | Birden fazla değişken | jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME} |
Format Kuralları
Başlangıç Karakteri
${ ile başlamalıdırBitiş Karakteri
} ile bitmelidirDeğişken Adı
Büyük/Küçük Harf
Environment Variable Kullanım Yerleri
Ortam değişkenleri Apinizer platformunda çeşitli yapılandırma alanlarında kullanılabilir. Environment Variable Seçim Dialog’u sadece belirli alanlarda mevcuttur.API Proxy - Routing
Database Connection
LDAP Connection
API Proxy - Routing Detayları
API Proxy - Routing Detayları
| Özellik | Açıklama |
|---|---|
| Konum | API Proxy > Upstream/Routing Tab > Define Address(es) |
| Alan | Backend API adresi input alanı |
| Kullanım | Backend API adreslerinde ortam bazlı yönlendirme |
| Erişim | Adres input alanının sağındaki liste ikonu butonuna tıklanarak |
Database Connection Detayları
Database Connection Detayları
| Özellik | Açıklama |
|---|---|
| Konum | Administration > Connection Management > Connection Pool Def DB |
| Alanlar | JDBC URL, Username, Password |
| Kullanım | Veritabanı bağlantı bilgilerinde ortam bazlı yönetim |
| Dialog Erişimi | Her alanın sağındaki liste ikonu butonuna tıklanarak |
| Secret Kullanımı | Password alanı mutlaka secret olarak işaretlenmelidir |
LDAP Connection Detayları
LDAP Connection Detayları
| Özellik | Açıklama |
|---|---|
| Konum | Administration > Connection Management > Connection Pool Def LDAP |
| Alanlar | LDAP URL, Bind DN, Bind Password |
| Kullanım | LDAP bağlantı bilgilerinde ortam bazlı yönetim |
| Dialog Erişimi | Her alanın sağındaki liste ikonu butonuna tıklanarak |
| Secret Kullanımı | Bind Password mutlaka secret olarak işaretlenmelidir |
Kullanım Senaryoları ve Örnekler
Backend API Adresi Yönetimi
Backend API Adresi Yönetimi
- Key Name:
BACKEND_API_URL - Type: Environment-Specific
- Development:
https://dev-api.example.com - Test:
https://test-api.example.com - Production:
https://api.example.com
- Address:
${BACKEND_API_URL}
- Development ortamında istekler
https://dev-api.example.comadresine gider - Test ortamında istekler
https://test-api.example.comadresine gider - Production ortamında istekler
https://api.example.comadresine gider
Veritabanı Bağlantı Yönetimi
Veritabanı Bağlantı Yönetimi
DB_HOST: Development=dev-db.example.com, Production=prod-db.example.comDB_PORT: Global=3306DB_NAME: Development=dev_db, Production=prod_dbDB_USER: Development=dev_user, Production=prod_userDB_PASSWORD: Development=dev_pass, Production=prod_pass(Secret)
- Connection String:
jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME} - Username:
${DB_USER} - Password:
${DB_PASSWORD}
- Development:
jdbc:mysql://dev-db.example.com:3306/dev_db - Production:
jdbc:mysql://prod-db.example.com:3306/prod_db
API Anahtarı Yönetimi
API Anahtarı Yönetimi
- Key Name:
EXTERNAL_SERVICE_API_KEY - Type: Environment-Specific
- Development:
dev-key-abc123(Secret) - Production:
prod-key-xyz789(Secret)
- Header Name:
X-API-Key - Header Value:
${EXTERNAL_SERVICE_API_KEY}
- Development:
X-API-Key: dev-key-abc123 - Production:
X-API-Key: prod-key-xyz789
Environment Variable Oluşturma
Ortam değişkeni oluşturma adımları:Adım 1: Yeni Ortam Değişkeni Ekleme
Adım 1: Yeni Ortam Değişkeni Ekleme
- Ortam Değişkenleri sayfasına gidin
- Sağ üst köşedeki “Oluştur” (Create) butonuna tıklayın
- Ortam Değişkeni düzenleme penceresi açılır
Adım 2: Temel Bilgileri Girme
Adım 2: Temel Bilgileri Girme
- Key Name (Değişken Adı):
- Zorunlu alan
- Proje içinde benzersiz olmalıdır
- İsim kontrolü otomatik yapılır
- Geçerli isim: Yeşil onay işareti
- Mevcut isim: Kırmızı uyarı işareti
- **Açıklama **:
- İsteğe bağlı alan
- Değişkenin ne için kullanıldığını açıklar
Adım 3: Tip Seçimi
Adım 3: Tip Seçimi
- Environment-Specific (Ortam Özelinde):
- Her ortam için farklı değer tanımlanabilir
- Yeni kayıt oluştururken seçilir
- Kayıt oluşturulduktan sonra değiştirilemez
- Global (Tüm Ortamlar):
- Tüm ortamlarda aynı değer kullanılır
- Yeni kayıt oluştururken seçilir
- Kayıt oluşturulduktan sonra değiştirilemez
Adım 4: Değer Tanımlama
Adım 4: Değer Tanımlama
- Ortam Ekleme: “Ortam Ekle” butonuna tıklayarak yeni ortam ekleyin
- Ortam Seçimi: Her değer için bir ortam seçin
- Mevcut ortamlar listeden seçilir
- “Custom…” seçeneği ile özel ortam adı girilebilir
- Değer Girme: Her ortam için değer girin
- Secret Ayarlama: Hassas bilgiler için “Secret” checkbox’ını işaretleyin
- Secret değerler kaydedildikten sonra maskelenir (
***********) - Secret değerler şifrelenerek saklanır
- Güncelleme sırasında değer değiştirilmemişse mevcut değer korunur
- Secret değerler kaydedildikten sonra maskelenir (
- Global Değer: Tek bir değer girin (tüm ortamlar için geçerli)
- Secret Ayarlama: Hassas bilgiler için “Secret” checkbox’ını işaretleyin
Adım 5: Kaydetme ve Deployment
Adım 5: Kaydetme ve Deployment
- Form Kontrolü: Tüm zorunlu alanlar doldurulmalı ve isim geçerli olmalı
- “Kaydet ve Deploy” butonuna tıklayın
- Onay Dialog’u:
- Değişken adını tekrar girmeniz istenir (güvenlik için)
- Etkilenecek bileşenler listelenir:
- API Proxy Routing ayarları
- Policy Configuration ayarları
- Connector ayarları
- Diğer yapılandırma ayarları
- Deployment Sonucu:
- Tüm çalışan ortamlara (Environments) otomatik olarak deploy edilir
- Deployment sonuçları gösterilir
Environment Variable Düzenleme
Düzenleme Modal’ının Açılması
Düzenleme modal’ı aşağıdaki yollarla açılabilir:| Yöntem | Açıklama |
|---|---|
| Liste’den Tıklama | Ortam değişkeni adına tıklanır |
| Menü’den Seçim | Satır sonundaki menüden “Edit” seçilir |
Düzenleme Modal’ındaki Farklılıklar
| Özellik | Yeni Kayıt | Düzenleme |
|---|---|---|
| Modal Başlığı | ”Add Environment Variable" | "Edit Environment Variable” |
| Type Seçimi | Aktif (değiştirilebilir) | Pasif (değiştirilemez) |
| Secret Değerler | Normal görünür | Maskelenmiş görünür (***********) |
| Secret Checkbox | Aktif | Kaydedilmiş secret’lar için pasif |
Best Practices
Güvenlik
Güvenlik
- Hassas bilgileri mutlaka şifrelenmiş olarak saklayın
- Şifreler, API anahtarları, sertifikalar için encrypted kullanın
- Düzenli olarak şifreleri değiştirin
Organizasyon
Organizasyon
- Değişken isimlerini tutarlı bir şekilde adlandırın
- Ortam ve proje seviyesi değişkenleri doğru şekilde ayırın
- Dokümantasyon oluşturun
Yönetim
Yönetim
- Kullanılmayan değişkenleri temizleyin
- Değişken kullanımını düzenli olarak gözden geçirin
- Versiyon kontrolü yapın

