Skip to content
Smarter by Design.Simpler for Business

Create Traffic Variable ​

Create Traffic Variable Aksiyonu Nedir? ​

Create Traffic Variable aksiyonu, işlenmekte olan trafiğe ait adlandırılmış değişkenler tanımlar. Değişkene atanan değer sabit bir metin olabileceği gibi, akıllı değişkenlerle üretilen dinamik bir içerik de olabilir.

Tanımlanan değişken, aynı vService içindeki diğer koşullarda ve aksiyonlarda %TR7VAR(ad) akıllı değişkeniyle okunur. Böylece bir kez hesaplanan bilgi, kural akışının ilerleyen adımlarında yeniden kullanılabilir.

1 tier = gold
Değişken Yaratılır
2 Sonraki koşul → %TR7VAR(tier) = gold
3 Sonraki aksiyon → X-Tier: %TR7VAR(tier)
Aynı Akışta Okunur

Trafik değişkenleri, TR7 motorunun kendi iç değişkenlerinden yalıtılmış bir alanda tutulur; operatörün verdiği adlar sistem değerleriyle hiçbir koşulda çakışmaz.

Create Traffic Variable Aksiyonunun Önemi ​

Karmaşık trafik kurallarında aynı bilgi (hesaplanmış bir anahtar, birleştirilmiş bir kimlik, bir sınıflandırma etiketi) çoğu zaman birden fazla noktada gerekir. Bu bilginin her seferinde yeniden üretilmesi hem kural setini büyütür hem de tutarsızlık riski doğurur.

Create Traffic Variable aksiyonu;

  • Bir kez hesaplanan değerin akış boyunca yeniden kullanılmasını sağlar,
  • Karmaşık koşulların sonucunun etiketlenip sonraki kurallarda sadeleşmesini mümkün kılar,
  • Birden çok akıllı değişkenin tek bir değerde birleştirilmesini sağlar,
  • İstek anında elde edilen bilginin cevap aşamasına taşınmasını mümkün kılar,
  • Üretilen etiketlerin log satırlarına yazılmasını sağlar.

Kullanılabildiği vService Tipleri ​

HTTP
L7 TCP
Network

Çalışma Anı ​

İstek Anı (On Request)
Cevap Anı (On Response)

Nasıl Eklenir? ​

Yeni bir Create Traffic Variable Aksiyonu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:

  1. Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
  2. Load Balancer → Actions → Add adımları takip edilir.
  3. Aksiyon için benzersiz ve açıklayıcı bir isim girilir.
  4. Action Type olarak Create Traffic Variable seçilir.
  5. Aksiyona ait ilgili konfigürasyonlar yapılandırılır.
  6. Conditions sekmesinden aksiyonun hangi koşul/koşullarda devreye gireceği belirlenir.
  7. Add butonuna tıklanarak aksiyon eklenir.

Create Traffic Variable Aksiyonu Ekleme Formu ​

Create Traffic Variable Aksiyonu Ekleme FormuCreate Traffic Variable Aksiyonu Ekleme Formu

INFO

Action Name ​

Oluşturulacak olan aksiyona benzersiz ve açıklayıcı bir isim girilir.

INFO

Action Type ​

Aksiyon tipi olarak Create Traffic Variable seçilir.

INFO

Execution Level Varsayılan: On request ​

Aksiyonun hangi aşamada çalıştırılacağını belirler.

Bu alan kayıttan sonra değiştirilemez; yön değişikliği gerekiyorsa yeni bir aksiyon tanımlanır. Aksiyon vService içinden ekleniyorsa ve vService yalnızca tek bir yönü destekliyorsa alan otomatik doldurulur ve düzenlenemez.

  • On Request: Değişken, istek kuralları işlenirken atanır. Değere hem sonraki istek aşaması kural ve koşullarından hem de cevap aşamasından erişilebilir.
  • On Response: Değişken, cevap kuralları işlenirken atanır. Değere yalnızca kendisinden sonraki cevap aşaması kural ve koşullarından erişilebilir; istek aşaması bu değişkeni göremez.

Seçim ayrıca Variable Value alanında sunulan akıllı değişken havuzunu belirler: On Response seçildiğinde cevap aşamasına ait değişkenler (ör. durum kodu, cevap başlıkları) listelenir.

INFO

Hit Counter Varsayılan: Kapalı ​

Hit Counter, aksiyonun her çalışmasını sayar (aksiyonun kendi koşuluyla birlikte değerlendirilir; Deny gibi sonlandırıcı aksiyonlarda bile sayım kaybolmaz). Aksiyon bazlı hız ve toplamlar, vService panosundaki Action Hits sekmesinde ve canlı istatistik ekranında görüntülenir; listelerde ayrıca bir kolon olarak görünmez. Sayaç kümülatiftir; elle sıfırlama arayüzü yoktur: sayılan aksiyon kümesi değiştiğinde veya vService yeniden yüklendiğinde sıfırdan başlar, geçmiş ise panoda hız (hit/s) olarak korunur.

INFO

Set Variable on Hit ​

Aksiyon her çalıştığında değeri atanacak bir değişken adı girilebilir (isteğe bağlı; varsayılan boş). Ad; harf, rakam ve alt çizgiden oluşabilir (en fazla 32 karakter). Aksiyon tetiklendiğinde değişken 1 değerine atanır ve aynı vService'teki diğer koşul ve aksiyonlarda %TR7VAR(ad) akıllı değişkeniyle okunarak zincirleme davranışlar kurulabilir.

WARNING

Bu alan ile aksiyonun kendi Variable Assignments tablosu aynı isim alanını paylaşır. Aynı ad her ikisinde de kullanılırsa biri diğerinin değerini ezer.

INFO

Variable Assignments Zorunlu ​

Yaratılacak trafik değişkenleri bu tabloda tanımlanır. Tablo Variable Name ve Variable Value kolonlarından oluşur; alan etiketinin sağındaki + butonuyla yeni satır eklenir. En az bir atama tanımlanması zorunludur; tek satır kaldığında silinemez. Satır sayısı için üst sınır yoktur, tek bir aksiyonla birden çok değişken yaratılabilir.

Variable Name ​

Değişkenin adıdır. Yalnızca harf, rakam ve alt çizgi kullanılabilir ve ad en fazla 32 karakter olabilir; nokta, tire ve boşluk kabul edilmez. Aynı ad bir aksiyon içinde yalnızca bir kez kullanılabilir.

Farklı aksiyonların aynı adı yazması serbesttir ve desteklenen bir kullanım şeklidir: bu durumda kural sırasında en son çalışan atama geçerli olur. Farklı koşullara bağlı birkaç aksiyonla aynı değişkene farklı değerler yazarak "duruma göre etiketleme" kurgusu oluşturulabilir.

Variable Value ​

Değişkene atanacak değerdir. Düz metin, akıllı değişken veya ikisinin karışımı yazılabilir (ör. bir sabit önekin ardından istek bilgisi).

TIP

Bu alan Smart Variables destekler. Değişken satırına (veya fx butonuna) tıklandığında Değişken ekle / Değişken düzenle penceresi açılır. Bu pencerede Değişken adı aranabilir listeden seçilir, değişken argüman alıyorsa (başlık adı, çerez adı vb.) ilgili alan doldurulur, gerekiyorsa Fonksiyondan geçir ile akıllı fonksiyon zinciri tanımlanır; Özet alanında oluşan ifadenin önizlemesi görülür ve Gönder ile alana yazılır.

Detaylı bilgi Variables sayfasında yer alır.

Sunulan akıllı değişken havuzu, seçili Execution Level ve vService protokolüne göre değişir. Daha önce yaratılmış bir trafik değişkeni de %TR7VAR girdisiyle bu alanda okunabilir; böylece değişkenler birbiri üzerine inşa edilebilir.

INFO

Conditions ​

Bu alanda, ilgili aksiyonun hangi koşul veya koşullar sağlandığında devreye gireceği tanımlanır.

Bir veya birden fazla koşul eklenerek, and/or yapısı ile davranışın hedefli ve kontrollü şekilde uygulanması sağlanabilir.

Koşullar hakkında detaylı bilgi Conditions sayfasında yer alır.

WARNING

Bu alanda herhangi bir koşul tanımlanmazsa, ilgili aksiyon koşulsuz (Always) olarak çalışır ve değişken ilgili vService'e gelen tüm trafik için atanır.

INFO

Details ​

Formun alt kısmındaki katlanabilir Details bölümünde gelişmiş alan bulunur.

Rule Protocol Varsayılan: HTTP ​

Aksiyonun hangi protokoldeki vService'lerde kullanılacağını belirler: HTTP veya TCP. Seçim, Variable Value alanında sunulan akıllı değişkenleri ve aksiyonun bağlanabileceği koşul kümesini belirler.

Bu alan da kayıttan sonra değiştirilemez; aksiyon bir vService içinden ekleniyorsa vService'in protokolüne göre otomatik doldurulur ve düzenlenemez.

INFO

Form Butonları ​

Add ​

Add butonuna tıklanarak aksiyon ekleme işlemi tamamlanır.

Add & Repeat ​

Add & Repeat butonu ile aksiyon ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir aksiyon daha eklenebilir.

Aksiyon EklendiAksiyon Eklendi

Değişkenin Ömrü ve Okunabildiği Yerler ​

Değişken tek bir istek/cevap akışı boyunca yaşar

Trafik değişkeni, işlenmekte olan isteğin ve ona ait cevabın ömrüyle sınırlıdır. Akış tamamlandığında değişken kaybolur:

  • Aynı bağlantı üzerinden gelen bir sonraki istek, değişkeni boş görür.
  • Değişkenler istemciye bağlı değildir; oturum boyunca kalıcı bilgi tutmak için kullanılamaz. Kalıcı takip gerektiren senaryolarda Advanced Traffic Inspection veya Quarantine aksiyonları kullanılır.
  • Henüz atanmamış bir değişken okunduğunda sonuç boş değerdir; hata üretmez, karşılaştırmalar eşleşmez.

Atanan değişken, TR7'de akıllı değişken kabul eden her yerde %TR7VAR(ad) girdisiyle okunabilir:

Kullanım yeriAçıklama
Diğer aksiyonların değer alanlarıBaşlık içeriği, yönlendirme adresi, path, gösterilecek içerik gibi alanlar
KoşullarAkıllı değişken kullanan koşullarda değişkenin değeri karşılaştırılır
Log satır formatıLog profilinde tanımlanan manuel satır formatına yazılabilir

Koşulda okurken ifadeyi yalnız bırakın

Bir koşulda trafik değişkeni okunurken ifade tek başına yazılmalıdır (yalnızca %TR7VAR(ad); başına/sonuna metin eklenmemeli, fonksiyondan geçirilmemelidir).

İfade yalnız yazıldığında değer kural sırasına uygun biçimde, yani kendisinden önce çalışan atamalar dikkate alınarak okunur. İfadenin etrafına metin eklendiğinde veya fonksiyon zinciri uygulandığında değer kural akışı başlamadan önce alınır ve değişken henüz atanmamış olduğu için boş görünür.

Set Variable On Hit ile Farkı ​

Her iki mekanizma da trafik değişkeni yazar; amaçları farklıdır:

Create Traffic Variable aksiyonuSet variable on hit alanı
NedirBağımsız bir aksiyon tipiSayaç destekleyen aksiyonların üzerindeki yan alan
Kaç değişkenSınırsız (tablo halinde)Tek değişken
DeğerSerbest; metin ve akıllı değişkenlerSabit 1
AmaçBir bilgiyi hesaplayıp taşımak"Bu aksiyon çalıştı" bayrağı bırakmak
Engelleyen aksiyonlardaKonu dışıAksiyon trafiği sonlandırsa bile değişken atanır

Kısaca: Set variable on hit bir bayraktır, Create Traffic Variable ise bir değer atamasıdır.

Operasyonel Kullanım Önerileri ​

  • Anlamlı Adlar Kullanın. Değişken adları kural listelerinde ve log satırlarında görünür; tier, tenant, riskLevel gibi ne taşıdığını anlatan adlar tercih edilmelidir.
  • Karmaşık Koşulu Bir Kez Kurun. Birden çok aksiyonda tekrarlanan uzun koşul yapıları, bir kez değerlendirilip trafik değişkeniyle etiketlenirse kural seti sadeleşir ve tutarsızlık riski ortadan kalkar.
  • Sırayı Kontrol Edin. Değişken, kendisini yaratan aksiyondan sonra gelen kurallarda okunabilir. Okuyan aksiyon listede yukarıdaysa değer boş gelir; aksiyon sırası buna göre düzenlenmelidir.
  • Aynı Adı Bilinçli Kullanın. Farklı koşullara bağlı aksiyonların aynı değişkene yazması desteklenir, ancak son yazan kazanır; istenmeyen ezmeleri önlemek için ad paylaşımı planlı yapılmalıdır.
  • Hassas Bilgi Taşımayın. Değişken değerleri log satırlarına ve başlıklara aktarılabildiğinden, parola/anahtar gibi bilgiler değişkene yazılmamalıdır.

Canlı Ortamlarda Yaygın Kullanım Senaryoları ​

Aşağıdaki örnekler, ilgili aksiyonun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.

Senaryo 1: Müşteri Segmentini Etiketleyip Kurum Servisine İletme ​

Problem: Uygulama, kullanıcının hangi abonelik seviyesinde olduğunu her istekte yeniden hesaplıyor ve bu bilgi TR7 tarafında tanımlı koşullarla tutarsız kalabiliyor.

Çözüm: Segment bilgisi TR7 tarafında bir kez belirlenip trafik değişkenine yazılır, ardından hem başlık olarak iletilir hem de sonraki kurallarda kullanılır.

Konfigürasyon:

  • Execution Level: On request
  • Variable Assignments: tier = gold
  • Conditions: User Cookie Name: abonelik çerezi kurumsal müşteri değerini taşıyor

Sonuç:

  • ✅ Koşulu sağlayan istekler → tier değişkeni gold değerini alır.
  • ✅ Sonraki Add HTTP Header aksiyonu → X-Tier başlığını %TR7VAR(tier) ile doldurur.
  • ✅ Sonraki kurallar → Uzun çerez koşulunu tekrarlamak yerine değişkeni okur.

Senaryo 2: Birleşik Anahtarı Tek Seferde Üretme ​

Problem: Aynı hedef bilgisi (host ve path birleşimi) birden çok aksiyonda ayrı ayrı kuruluyor; bir alan değiştiğinde tüm aksiyonların güncellenmesi gerekiyor.

Çözüm: Birleşik değer tek bir aksiyonda üretilip değişkene yazılır, diğer aksiyonlar yalnızca değişkeni okur.

Konfigürasyon:

  • Execution Level: On request
  • Variable Assignments: routeKey = fx ile host ve path akıllı değişkenleri arka arkaya eklenir
  • Conditions: Koşulsuz

Sonuç:

  • ✅ Tüm istekler → routeKey değişkeni oluşur.
  • ✅ Başlık ekleme, log ve koşul kuralları → Aynı değeri %TR7VAR(routeKey) ile kullanır.
  • ✅ Değer tanımı değiştiğinde → Yalnızca tek bir aksiyon güncellenir.

Senaryo 3: İstek Bilgisini Cevap Aşamasına Taşıma ​

Problem: Cevap aşamasında alınacak karar, yalnızca istek anında görülebilen bir bilgiye (ör. isteğin geldiği path veya istemciye ait bir işaret) bağlı; bu bilgi cevap aşamasında artık erişilebilir değil.

Çözüm: Bilgi istek anında trafik değişkenine yazılır, cevap aşamasındaki koşul ve aksiyonlar bu değişkeni okur.

Konfigürasyon:

  • Execution Level: On request
  • Variable Assignments: apiCall = 1
  • Conditions: Path: /api/ ile başlıyor

Sonuç:

  • ✅ API istekleri → apiCall değişkeni işaretlenir.
  • ✅ Cevap aşamasındaki aksiyonlar → %TR7VAR(apiCall) üzerinden yalnızca API cevaplarına uygulanır.
  • ❌ Diğer istekler → Değişken boş kalır, cevap aşaması kuralları çalışmaz.

Senaryo 4: Duruma Göre Etiketleyip Loga Yazma ​

Problem: Log kayıtlarında isteğin hangi risk sınıfına düştüğü görünmüyor; analiz sırasında koşullar elle yeniden yorumlanıyor.

Çözüm: Farklı koşullara bağlı birkaç aksiyon aynı değişkene farklı değerler yazar, log satır formatı bu değişkeni içerir.

Konfigürasyon:

  • Execution Level: On request
  • Variable Assignments: riskLevel = high (ikinci bir aksiyonda aynı değişkene low yazılır)
  • Conditions: İlgili risk koşulu (ör. Blacklist IP Category)

Sonuç:

  • ✅ Riskli istekler → riskLevel değişkeni high değerini alır.
  • ✅ Log satırı → %TR7VAR(riskLevel) alanıyla sınıf bilgisini içerir.
  • ✅ Analiz → Koşulları yeniden yorumlamadan risk sınıfına göre filtrelenebilir.