Ortam Değişkenleri Yönetimi
Ortam Değişkenleri kavramı hakkında detaylı bilgi için Environment Variable temel kavramlar sayfasına bakabilirsiniz.
Bu sayfa, Ortam Değişkenleri'nin nasıl oluşturulacağı, düzenleneceği ve kullanılacağına dair pratik bilgileri içerir. Ortam Değişkenleri, Apinizer API Management Platform'unda farklı ortamlarda (Development, Test, Production) farklı değerler kullanılması gereken yapılandırma bilgilerini merkezi olarak yönetmenizi sağlayan bir özelliktir. Bu özellik sayesinde aynı API Proxy yapılandırması farklı ortamlarda farklı backend adresleri, veritabanı bağlantı bilgileri, API anahtarları gibi değerleri dinamik olarak kullanabilir.
Çalışma Mantığı
1. Tanımlama Aşaması
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
2. Kullanım Aşaması
Ortam değişkenleri, yapılandırma alanlarında ${variableName} formatında kullanılır:
- Örnek 1: Backend adresi için
${BACKEND_URL} - Örnek 2: Veritaban ı bağlantı string'i için
jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME} - Örnek 3: API anahtarı için
${API_KEY}
3. Runtime Çözümleme
API Proxy çalışırken (runtime):
- Yapılandırmadaki
${variableName}formatındaki ifadeler tespit edilir - İlgili ortamın (Environment) değişken değeri alınır
- Değer otomatik olarak decrypt edilir — tüm değerler şifreli saklandığı için bu adım Secret işaretli olmayan değerler için de çalışır
- Değişken adı gerçek değerle değiştirilir
- İşlem gerçek değerle devam eder
Örnek Senaryo:
- Development Ortamı:
BACKEND_URL = dev-api.example.com - Production Ortamı:
BACKEND_URL = api.example.com - Yapılandırmada:
${BACKEND_URL} - Runtime'da Development'ta:
dev-api.example.com - Runtime'da Production'da:
api.example.com
Ortam Değişkeni Oluşturma (Create)
Ortam değişkeni oluşturma adımlarını içeren görsel aşağıda verilmiştir:
Ortam değişkeni oluşturma konfigürasyonları adım adım aşağıdaki tabloda anlatılmıştır:
| Adım | İşlev |
|---|---|
| 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 | 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 (Description): İsteğe bağlı alan Değişkenin ne için kullanıldığını açıklar |
| 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 :::info |
Tip seçimi sadece yeni kayıt oluştururken yapılabilir. Mevcut kayıtların tipi değiştirilemez.
::: |
| Adım 4: Değer Tanımlama | Environment-Specific Değişkenler İçin:
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: Değerin bir daha okunmasını istemiyorsanız "Secret" checkbox'ını işaretleyin
Tüm değerler, Secret işaretlensin ya da işaretlenmesin, veritabanında şifreli saklanır
Secret olmayan değerler ekranda maskeli gösterilir; göz ikonuyla açılıp kopyalanabilir
Secret değerler kaydedildikten sonra hiçbir zaman görüntülenemez
Güncelleme sırasında değer değiştirilmemişse mevcut değer korunur
Global Değişkenler İçin:
Global Değer: Tek bir değer girin (tüm ortamlar için geçerli)
Secret Ayarlama: Değerin bir daha okunmasını istemiyorsanız "Secret" checkbox'ını işaretleyin |
| 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 |
- 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
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 (Description):
- İsteğe bağlı alan
- Değişkenin ne için kullanıldığını açıklar
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
Tip seçimi sadece yeni kayıt oluştururken yapılabilir. Mevcut kayıtların tipi değiştirilemez.
Environment-Specific Değişkenler İçin:
- 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: Değerin bir daha okunmasını istemiyorsanız "Secret" checkbox'ını işaretleyin
- Tüm değerler, Secret işaretlensin ya da işaretlenmesin, veritabanında şifreli saklanır
- Secret olmayan değerler ekranda maskeli gösterilir; göz ikonuyla açılıp kopyalanabilir
- Secret değerler kaydedildikten sonra hiçbir zaman görüntülenemez: ekranda gösterilmez, API'den dönmez ve dışa aktarma paketine düz metin olarak girmez
- Güncelleme sırasında değer değiştirilmemişse mevcut değer korunur
Global Değişkenler İçin:
- Global Değer: Tek bir değer girin (tüm ortamlar için geçerli)
- Secret Ayarlama: Değerin bir daha okunmasını istemiyorsanız "Secret" checkbox'ını işaretleyin
- 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
Ortam değişkeni değerlerinin tamamı veritabanında şifreli saklanır — bir değeri korumak için Secret işaretlemeniz gerekmez. Secret işaretlemeyi yalnızca değerin hiç kimse tarafından geri okunmaması gerektiğinde kullanın:
- Secret olmayan değer: ekranda maskeli görünür, göz ikonuyla açılır ve kopyalanabilir; okuma API'lerinde ve dışa aktarma paketinde düz metin olarak yer alır.
- Secret değer: kaydedildikten sonra bir daha görüntülenemez; ekranda gösterilmez, API yanıtlarında
nulldöner ve dışa aktarma paketine düz metin olarak girmez.
Secret işaretli bir değer geri okunamadığı için, değeri değiştirmek isterseniz yenisini yazmanız gerekir.
Ortam Değişkeni Düzenleme (Edit)
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 Olmayan Değerler | Maskeli girilir, göz ikonuyla açılabilir | Maskeli görünür, göz ikonuyla açılıp kopyalanabilir |
| Secret Değerler | Maskeli girilir, göz ikonuyla açılabilir | Salt-okunur maske (************); göz ve kopyala yoktur |
| Secret Checkbox | Aktif | Kaydedilmiş secret'lar için pasif |
Ortam Değişkenleri Kullanımı
Ortam değişkenleri, Apinizer API Manager platformunda çeşitli yapılandırma alanlarında kullanılabilir. Bu bölümde ortam değişkenlerinin nasıl kullanılacağı, hangi yapılandırmalarda kullanılabileceği ve pratik örnekler detaylı olarak açıklanmaktadır.
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ı
| Kural | Açıklama |
|---|---|
| Başlangıç Karakteri | ${ ile başlamalıdır |
| Bitiş Karakteri | } ile bitmelidir |
| Değişken Adı | Ortada değişken adı yer alır (boşluk olmadan) |
| Büyük/Küçük Harf | Değişken adı büyük/küçük harf duyarlıdır |
| Özel Karakterler | Değişken adında nokta (.), alt çizgi (_) kullanılabilir |
Kullanım Yerleri
Ortam değişkenleri Apinizer platformunda çeşitli yapılandırma alanlarında kullanılabilir. Ancak Environment Variable Seçim Dialog'u sadece belirli alanlarda mevcuttur.
1. API Proxy - Routing (Yönlendirme)
Kullanım Alanı: Upstream Routing adresleri
| Ö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 |
Kullanım Senaryosu: Farklı ortamlarda farklı backend adresleri kullanmak için
2. Database Connection (Veritabanı Bağlantısı)
Kullanım Alanı: Veritabanı bağlantı yapılandırması
| Ö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 |
Kullanım Senaryosu: Farklı ortamlarda farklı veritabanı bağlantı bilgileri kullanmak için
3. LDAP Connection (LDAP Bağlantısı)
Kullanım Alanı: LDAP bağlantı yapılandırması
| Ö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 Senaryosu: Farklı ortamlarda farklı LDAP bağlantı bilgileri kullanmak için
4. AI Gateway — Buton ile Panoya Kopyalama (MCP Gateway, A2A Gateway, LLM Sağlayıcılar, Vector Veritabanları)
Kullanım Alanı: AI Gateway modülündeki satır içi MCP sunucusu / A2A ajanı kimlik doğrulama ayarları ile LLM/VectorDB bağlantı bilgileri
| Özellik | Açıklama |
|---|---|
| Konum | MCP Gateway — bir MCP Gateway'inin MCP Routing sekmesi ya da MCP Çağrısı (LLM) / MCP Araç Çağırma politikasının satır içi sunucu alanları (Uç Nokta, Bearer Token veya OAuth2 istemci kimlik bilgileri) · A2A Gateway — bir A2A Gateway'inin A2A Routing sekmesi ya da A2A Çağrısı (LLM) / A2A Ajan Çağırma politikasının satır içi ajan alanları (Uç Nokta, Bearer Token veya OAuth2 istemci kimlik bilgileri) · AI Gateway > LLM Sağlayıcılar (Uç Nokta URL, API Anahtarı, API Gizli Anahtarı, Organizasyon ID) · AI Gateway > RAG > Vector Veritabanları tab'ı (Varsayılan Koleksiyon Adı) |
| Alanlar | Yukarıdaki ekranlardaki ilgili metin girişleri |
| Kullanım | Kimlik doğrulama bilgisi ve LLM/VectorDB bağlantı bilgisinde ortam bazlı yönetim |
| Dialog Erişimi | Var — sayfa üstündeki araç çubuğunda kod ikonlu "Değişken" butonuna tıklandığında "Ortam Değişkeni Seç" penceresi açılır; listeden bir değişkene tıklandığında değeri (${değişkenAdı} biçiminde) panoya kopyalanır ve ilgili alana elle yapıştırılır (alan bazında otomatik doldurma yoktur, buton sayfa geneli tek bir giriş noktasıdır) |
| Secret Kullanımı | API Anahtarı, API Gizli Anahtarı, Bearer Token ve OAuth2 istemci sırrı gibi hassas alanlar secret olarak saklanır; alana bir ortam değişkeni ifadesi girildiğinde (yapıştırma veya elle yazma) şifreleme atlanır ve değer çalışma zamanında ortam değişkeninden çözümlenir |
Kullanım Senaryosu: Aynı AI Gateway yapılandırmasını farklı ortamlarda farklı LLM sağlayıcı anahtarları veya farklı MCP/A2A sunucu kimlik bilgileriyle çalıştırmak için
5. AI Gateway — Manuel Giriş (AI RAG Injection Politikası)
Kullanım Alanı: AI RAG Injection politikasının bağlantı/şablon alanları
| Özellik | Açıklama |
|---|---|
| Konum | AI RAG Injection politikası (Koleksiyon Adı, Enjeksiyon Şablonu, Embedding Model) |
| Alanlar | Yukarıdaki politikadaki ilgili metin girişleri |
| Kullanım | RAG bağlantı bilgisinde ortam bazlı yönetim |
| Dialog Erişimi | Yok — bu alanlarda Environment Variable Seçim Dialog'u sunulmaz; değişken adını ${DEĞİŞKEN_ADI} biçiminde doğrudan alana yazmanız gerekir |
| Secret Kullanımı | Bu politikanın alanları secret olarak işaretli değildir; ortam değişkeni ifadesi yazıldığında değer çalışma zamanında ortam değişkeninden çözümlenir |
Kullanım Senaryosu: Aynı AI Gateway yapılandırmasını farklı ortamlarda farklı RAG koleksiyon adlarıyla çalıştırmak için
AI Prompt Koruyucu (Prompt Guard) politikasındaki regex/desen alanları, güvenlik nedeniyle ortam değişkeni çözümlemesini desteklemez; bu alanlara yazılan değer olduğu gibi kullanılır.
Kullanım Senaryoları ve Örnekler
- Backend API Adresi Yönetimi
- Veritabanı Bağlantı Yönetimi
- API Anahtarı Yönetimi
- AI Gateway Bağlantı Yönetimi
Problem: Farklı ortamlarda farklı backend API adresleri kullanılıyor.
Çözüm:
- Ortam Değişkeni Oluşturma:
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
- Routing'de Kullanım:
Address: ${BACKEND_API_URL}
- Sonuç:
- 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
Problem: Her ortamda farklı veritabanı kullanılıyor.
Çözüm:
- Ortam Değişkenleri:
DB_HOST: Development=dev-db.example.com, Production=prod-db.example.com
DB_PORT: Global=3306
DB_NAME: Development=dev_db, Production=prod_db
DB_USER: Development=dev_user, Production=prod_user
DB_PASSWORD: Development=dev_pass, Production=prod_pass (Secret)
- Connector'da Kullanım:
Connection String: jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}
Username: ${DB_USER}
Password: ${DB_PASSWORD}
- Sonuç:
- Development:
jdbc:mysql://dev-db.example.com:3306/dev_db - Production:
jdbc:mysql://prod-db.example.com:3306/prod_db
Veritabanı adında alt çizgi (_) karakteri varsa, URL encoding ile %5F olarak gösterilir. Örneğin dev_db → dev%5Fdb.
Problem: Dış servisler için farklı API anahtarları kullanılıyor.
Çözüm:
- Ortam Değişkeni:
Key Name: EXTERNAL_SERVICE_API_KEY
Type: Environment-Specific
Development: dev-key-abc123 (Secret)
Production: prod-key-xyz789 (Secret)
- Policy'de Kullanım:
Header Name: X-API-Key
Header Value: ${EXTERNAL_SERVICE_API_KEY}
- Sonuç:
- Development:
X-API-Key: dev-key-abc123 - Production:
X-API-Key: prod-key-xyz789
Problem: Farklı ortamlarda farklı LLM sağlay ıcı anahtarları kullanılıyor.
Çözüm:
- Ortam Değişkeni Oluşturma:
Key Name: OPENAI_API_KEY
Type: Environment-Specific
Development: sk-dev-... (Secret)
Production: sk-prod-... (Secret)
- LLM Sağlayıcı'da Kullanım:
API Anahtarı: ${OPENAI_API_KEY}
- Sonuç:
- Development ortamındaki LLM çağrıları geliştirme anahtarını kullanır
- Production ortamındaki LLM çağrıları üretim anahtarını kullanır
LLM Sağlayıcı sayfasının üst araç çubuğundaki kod ikonlu "Değişken" butonuyla "Ortam Değişkeni Seç" penceresi açılır; listeden OPENAI_API_KEY değişkenine tıklayarak değerini panoya kopyalayabilir, ardından API Anahtarı alanına elle yapıştırabilirsiniz (alan bazında otomatik doldurma yoktur). Değişken adını doğrudan ${OPENAI_API_KEY} biçiminde de yazabilirsiniz.