App Engine ile sunucu tarafı etiketleme ayarlama

Bu kılavuzda aşağıdakilerin nasıl yapılacağı açıklanmaktadır:

  • Google Cloud Platform (GCP) App Engine'de etiketleme sunucusu sağlama.
  • Etiketleme sunucusunu canlı trafiği işleyecek şekilde yükseltin.
  • Google Etiket Yöneticisi kapsayıcınızı çalıştıran sunucu sayısını artırın veya azaltın.
  • Sunucuyu sağladıktan sonra etiketleme sunucunuzun sürümünü güncel tutun.

Ön koşullar

  1. Bir GCP hesabınız olmalıdır. Hesabınız yoksa yeni bir GCP hesabı oluşturun.
  2. GCP faturalandırma hesabınız olmalıdır. Hesabınız yoksa GCP faturalandırma hesabı oluşturun (Faturalandırma Hesabı Oluşturucu rolü gerekir).
  3. Proje Oluşturucu ve Faturalandırma Hesabı Kullanıcısı rolüne sahip olmanız gerekir. Rol ekleme hakkında daha fazla bilgi edinin.

1. Sunucu sağlama

App Engine örneğinde yeni bir etiketleme sunucusu oluşturmak için şunları yapmanız gerekir:

  • Etiket Yöneticisi'nde yeni bir sunucu kapsayıcısı oluşturma
  • Yeni bir Google Cloud projesi (GCP) oluşturun
  • Yeni bir App Engine etiketleme sunucusu sağlama
  • Yeni etiketleme sunucusunun URL'sini Etiket Yöneticisi sunucu kapsayıcısına ekleyin.

Google Etiket Yöneticisi sunucu kapsayıcısı oluşturma

  1. Google Etiket Yöneticisi'ni açın.

  2. Hesap satırında, taşma menüsü > Kapsayıcı Oluştur'u tıklayın.

  3. Yeni bir sunucu kapsayıcısı oluşturun.

  4. "Etiketleme sunucusunu manuel olarak hazırlayın" radyo düğmesini tıklayın. Kapsayıcı yapılandırmasını not edin. Sunucunuzu sağlamak için gereklidir.

Yeni bir GCP projesi oluşturun

Etiketleme sunucunuz için yeni bir GCP projesi oluşturmak üzere:

  1. Google Cloud Console'u açın.

  2. Yeni bir GCP projesi oluşturun.

  3. Projenize ad verin. Kolaylık sağlaması için kapsayıcı kimliğinizi kullanmanızı öneririz. Bu ad yalnızca GCP içinde kullanılır.

  4. Etiketleme sunucunuzu oluşturmak için gerekli olacağından GCP proje kimliğini not edin.

Yeni bir etiketleme sunucusu hazırlama

Etiketleme sunucunuzu oluşturmak için:

  1. Cloud Shell'i açın.

  2. Cloud Shell'de GCP projesini ayarlayın. project ID kısmını, daha önce not ettiğiniz GCP projesinin kimliğiyle değiştirin:

    gcloud config set project project ID
    
  3. Kabuk komut dosyasını uygulayarak etiketleme sunucunuzu oluşturun. Dağıtım türünü testing olarak ayarlayın.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

Etiketleme sunucusu URL'sini Etiket Yöneticisi'ne ekleme

  1. Google Etiket Yöneticisi'ni açın.

  2. Yönetici > Kapsayıcı Ayarları'nda URL ekle'yi tıklayın. Sunucunuzun URL'sini bilmiyorsanız Cloud Shell'de aşağıdaki komutu çalıştırın:

    gcloud app browse
    

    Sonuç: Bir etiketleme sunucusu oluşturup testing yapılandırmasıyla sağladınız. Artık sunucu tarafı etiketlemeyi test edebilirsiniz.

İlk sunucu yapılandırması (testing)

Test yapılandırması, az miktarda test trafiği göndererek ve Etiket Yöneticisi'ndeki önizleme özelliğini kullanarak ürünü keşfetmek için uygundur. Bu yapılandırma, Standart ortamda bir App Engine F1 örnek sınıfıdır ve çoğu durumda herhangi bir maliyetle karşılaşmazsınız.

2. Üretimde App Engine kullanma

production yapılandırmasında her sunucunun maliyeti yaklaşık 40 ABD doları / aydır. Her sunucu, esnek ortamda 1 vCPU, 0,5 GB bellek ve 10 GB disk içeren bir App Engine örneğidir.

App Engine faturalandırması ve faturalandırma uyarılarını yapılandırma hakkında bilgi edinmek için App Engine maliyetlerini yönetme bölümüne bakın. Faturalandırma uyarısı oluşturmanızı önemle tavsiye ederiz.

Sunucu kesintisi durumunda veri kaybı riskini azaltmak için en az 3 sunucu çalıştırmanızı öneririz. Ancak daha az (veya daha fazla) sunucu çalıştırmayı seçebilirsiniz. Varsayılan olarak 3-6 sunucunun otomatik ölçeklendirilmesinin saniyede 50-200 isteği işleyebileceğini tahmin ediyoruz. Performans, etiket sayısına ve bu etiketlerin ne yaptığına bağlıdır.

Etiketleme sunucunuzu yapılandırmak için:

  1. Google Cloud Platform Cloud Shell'i açın.
  2. Cloud Shell'de Cloud Platform projesini ayarlayın. project ID kısmını, daha önce not ettiğiniz GCP projesinin kimliğiyle değiştirin:
    gcloud config set project project ID
  3. Etiketleme sunucusunu üretim ortamı için yeniden yapılandırmak üzere aşağıdaki kurulum komut dosyasını çalıştırın. Aşağıdaki görevleri gerçekleştirin:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Dağıtım türünü production olarak değiştirin.
    2. Üretim trafiğine hizmet vermek için ek sunucular ayarlayın. En az üç sunucu kullanmanızı öneririz.

İsteğe bağlı: Günlük kaydını devre dışı bırakma

İstek günlüğü kaydı

App Engine, varsayılan olarak aldığı her istek (ör.istek yolu, sorgu parametreleri vb.) hakkında bilgi kaydeder. Etiketleme sunucunuz ayda çok sayıda isteği (ör. 1 milyondan fazla) işliyorsa bu günlük mesajları önemli günlük kaydı ücretlerine neden olabilir. Günlüğe kaydetme ücretlerini azaltmak veya ortadan kaldırmak için App Engine istek günlüğünü devre dışı bırakmanızı öneririz.

App Engine istek günlüğünü devre dışı bırakmak için:

  1. Google Cloud Platform'da Günlük Yönlendirici'yi açın. Kapsayıcı kimliğinizle eşleşen projede olduğunuzdan emin olun:
    GCP proje seçicinin ekran görüntüsü. Örnek bir Etiket Yöneticisi kapsayıcı kimliği gösteriliyor.
  2. Tür: Cloud Logging paketi, Ad: _Varsayılan satırı için taşma menüsünü seçin ve Havuzu Düzenle'yi tıklayın.
  3. Sink hedefi bölümünde, günlük paketi _Default'u seçin.
  4. Havuza dahil edilecek günlükleri seçin bölümünde yeni bir satır ekleyin. Mevcut dahil etme filtresine aşağıdaki kuralı girin:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Yük dengeleyiciden günlük kaydını da devre dışı bırakmak için yeni bir satır ekleyin ve mevcut dahil etme filtresine aşağıdaki kuralı girin:

    NOT LOG_ID("requests")
    
  6. Değişiklikleri uygulamak için Update Sink'i (Senkronizasyonu Güncelle) tıklayın. Artık App Engine istekleri günlüğe kaydetme işleminden hariç tutulacak.

  7. Günlük Gezgini günlüklerinde yeni isteklerin görünmediğini doğrulayın.

Konsol günlüğü

Bir kapsayıcıdaki etiketleme sunucusu, istemciler veya etiketler, konsola günlük kaydı ücretlerine neden olabilecek iletiler kaydedebilir. Günlüğe kaydetme ücretlerini azaltmak veya ortadan kaldırmak için istenmeyen console.log mesajlarını devre dışı bırakabilirsiniz.

İstenmeyen konsol günlüklerini belirleme:

  1. GCP'de Günlük Gezgini'ni açın.
  2. Etiketlerinizden kaynaklanan istenmeyen günlük mesajları olup olmadığına bakın. Örneğin:

    Bir etiket aşağıdaki günlükleri gönderebilir:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    textPayload alanında ilgili günlük mesajlarını bulun:
    GCP Günlük Gezgini'nin örnek günlükleri gösteren ekran görüntüsü.

Konsol günlüğü mesajını devre dışı bırakmak için:

  1. Google Cloud Platform'da Günlük Yönlendirici'yi açın. Kapsayıcı kimliğinizle eşleşen projede olduğunuzdan emin olun:
    GCP proje seçicinin ekran görüntüsü. Örnek bir Etiket Yöneticisi kapsayıcı kimliği gösteriliyor.
  2. Tür: Cloud Logging paketi, Ad: _Varsayılan satırı için taşma menüsünü seçin ve Havuzu Düzenle'yi tıklayın.
  3. Sink hedefi bölümünde, günlük paketi _Default'u seçin.
  4. Havuza dahil edilecek günlükleri seçin bölümünde yeni bir satır ekleyin. Mevcut dahil etme filtresine aşağıdaki kuralı girin:

    NOT textPayload:"Custom message:"
    

    Konsol günlükleriniz için Custom message: metnini, devre dışı bırakmak istediğiniz konsol günlüğündeki bir alt dizeyle değiştirin. Daha ayrıntılı filtreler için günlük sorgu dilini kullanın.

  5. Değişiklikleri uygulamak için Update Sink'i (Güncelleme Senkronizasyonu) tıklayın. Eşleşen logToConsole ileti, günlüğe kaydetme işleminden hariç tutulmalıdır.

  6. Günlük Gezgini'nde yeni konsol günlüğü mesajlarının görünmediğini doğrulayın.

3. Dağıtımı özel alanınızla eşleme

Varsayılan sunucu tarafı etiketleme dağıtımı bir App Engine alanında barındırılır. Dağıtımı, web sitenizin bir alt alan adını kullanacak şekilde değiştirmenizi öneririz.

Web sitenizin alt alan adını etiketleme sunucunuzla eşleyin.

4. Sunucu URL'sini Google Etiket Yöneticisi'ne ekleme

Artık bir sunucunuz olduğuna göre Google Etiket Yöneticisi'nin sunucunuzu kullanması gerektiğini bilmesini sağlamanız gerekir.

  1. Google Etiket Yöneticisi'ni açın.

  2. Etiketleme sunucunuza yönlendirmek istediğiniz sunucu kapsayıcısını tıklayın.

  3. Yönetici sekmesi > Kapsayıcı Ayarları'nda sunucu kapsayıcısı ayarlarınızı açın.

  4. URL ekle'yi tıklayın ve sunucu URL'nizi yapıştırın.

  5. Kaydet'i tıklayın ve çalışma alanınıza geri dönün.

5. Doğrulama

Etiketleme sunucunuzu ayarladığınıza göre, amaçlandığı şekilde çalıştığından emin olun.

Kullanıcı arayüzü doğrulama

Etiket Yöneticisi çalışma alanınızda Önizleme düğmesini tıklayın. Önizleme sayfası yüklenirse her şey doğru şekilde ayarlanmış demektir.

API doğrulama

Ayrıca, sunucunun API'sini kullanarak durum denetimlerine yanıt verdiğini de doğrulayabilirsiniz:

  1. Yönetici > Kapsayıcı Ayarları'ndan Sunucu kapsayıcı URL'nizi kopyalayın.
  2. Yeni bir tarayıcı sekmesi açın.
  3. URL'yi yapıştırın ve yola /healthy ekleyin. Örneğin: https://www.example.com/metrics/healthy
  4. Hizmetiniz çalışıyorsa sayfada ok metnini görürsünüz.

Belirli bir ürünle ilgili istekler eksikse bir etkinliğin tetiklendiğini doğrulayın. config komutu ürünü başlatır ancak veriler genellikle yalnızca bir event çağrıldığında iletilir.

Sunucu tarafı etiketleme doğrulama ile ilgili en iyi uygulamalar hakkında daha fazla bilgi için Özel alan yapılandırması başlıklı makaleyi inceleyin.

Birden fazla URL'yi önizleme

Tek bir etiketleme sunucusuna birden fazla alan eşlediyseniz her URL'nin kapsayıcı ayarlarına eklendiğinden emin olun.

Birden fazla URL sağladıysanız tüm yollar (alan adından sonraki dize) eşleşmelidir.

Works Çalışmıyor
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Birden fazla URL eklenirse Önizleme düğmesinin yanında, önizlenecek URL'yi seçmenize olanak tanıyan bir simge görürsünüz.

Etiketleme sunucusu sürümünü güncelleme

Yeni etiketleme sunucusu güncellemeleri, güvenlik açığı düzeltmelerini ve yeni özellikleri içerir. Etiket Yöneticisi güncellemenizi bildirdiğinde, her ana sürüm yayınında (ör. 1.x.x sürümünden 2.x.x sürümüne yükseltme) etiketleme sunucunuzu en azından güncellemenizi öneririz.

Etiketleme sunucunuzu güncellemek için kurulum komut dosyasını daha önce kullandığınız aynı ayarları kullanarak yeniden çalıştırın. Mevcut ayarlar varsayılan olarak belirlenir.

Etiketleme sunucunuzu güncellemek için:

  1. Google Cloud Platform Cloud Shell'i açın.
  2. Cloud Shell'de Cloud Platform projesini ayarlayın. project ID kısmını, daha önce not ettiğiniz GCP projesinin kimliğiyle değiştirin:
    gcloud config set project project ID
  3. Kurulum komut dosyasını daha önce kullandığınız ayarları kullanarak çalıştırın. Mevcut ayarlar varsayılan olarak ayarlanır.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Güncellemenin başarılı olduğunu doğrulamak için:

  1. Yeni bir hata ayıklama oturumu başlatmak ve ayrı bir sekmede istek göndermek için sunucu kapsayıcınızda Önizleme düğmesini tıklayın.
  2. Özet'te Console (Konsol) sekmesini seçin ve etiketleme sunucusunu güncellemenizi isteyen mesajların olmadığından emin olun.

Etiket Yöneticisi, sunucu başarıyla güncellendikten sonraki bir gün içinde etiketleme sunucunuzu güncellemenizi isteyen mesajlar gösterebilir. Ancak önizleme sayfasında, etiketleme sunucusu sürümüyle ilgili güncel bir mesaj gösterilir.

Üretim dağıtımı zaman aşımlarıyla ilgili sorunları giderme

Etiketleme sunucusunu oluşturmak veya yeniden yapılandırmak için kurulum komut dosyasını çalıştırdığınızda komut dosyasının zaman aşımına uğraması mümkündür. Bunun birkaç nedeni olabilir. En yaygın iki neden şunlardır:

  1. Hizmet hesapları yanlış izinlere sahip: Compute Engine ve App Engine hizmet hesapları, üretim dağıtımını dağıtmak ve sürdürmekle sorumludur. Bu kullanıcılar varsayılan olarak uygun izinlerle önceden yapılandırılır. Ancak bazı durumlarda, kuruluşun politikası nedeniyle bu bilgiler yanlış olabilir.

    1. Google Cloud Console'un sol gezinme çubuğunda IAM ve Yönetici sayfasına gidin.
    2. Compute Engine hizmet hesabı <project_number>-compute@developer.gserviceaccount.com ve App Engine hizmet hesabını <project_name>@appspot.gserviceaccount.com bulun.
    3. Her iki hizmet hesabında da Editor rolü olmalıdır. Hesaplardan birinde Editor rolü yoksa hesabı sağındaki kalem simgesini tıklayarak, mevcut rolün açılır listesini tıklayarak, en üste kaydırarak ve Proje, ardından Düzenleyici'yi tıklayarak rolü güncelleyin.
  2. Yetersiz kota: Üretim dağıtımı, Compute Engine kotasını kullanır. Projede yeterli kota yoksa kaynaklar sağlanmaya çalışılırken dağıtımın zaman aşımına uğraması mümkündür.

    1. Google Cloud Console'daki sol gezinme çubuğunda IAM ve Yönetici sayfasına gidin, ardından sol gezinme çubuğunda Kotalar sekmesini tıklayın.
    2. Sayfanın üst kısmına yakın bir yerde Tabloyu filtrele yazan metin kutusunu tıklayın ve Compute Engine API yazın. Tek sonucu tıklayın.
    3. Tüm kota durumlarının sınır dahilinde olduğunu veya yeşil onay işaretiyle gösterildiğini doğrulayın.
    4. CPU'lar'ı bulup tıklayın. Mevcut kullanım ile dağıtılan örnek sayısının, dağıtım bölgesinin sınırının altında kalacağını doğrulayın.