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 hazırlayın.
  • Etiketleme sunucusunu canlı trafiği yönetmek için yeni sürüme geçirin.
  • Google Etiket Yöneticisi kapsayıcınızı çalıştıran sunucuların sayısını artırın veya azaltın.
  • Sunucunun temel hazırlığını yaptıktan sonra etiketleme sunucunuzun sürümünü güncel tutun.

Ön koşullar

  1. Bir GCP hesabına ihtiyacınız vardı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ünü gerektirir).
  3. Proje Oluşturucu ve Faturalandırma Hesabı Kullanıcısı rolüne ihtiyacınız vardır. Rol ekleme hakkında daha fazla bilgi edinin.

1. Sunucu hazırlayın

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 sunucusunun temel hazırlığını yapın
  • 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 sağla" radyo düğmesini tıklayın. Container yapılandırmasını not edin. Sunucunuzun temel hazırlığını yapmak için buna ihtiyacınız olacaktır.

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. Size kolaylık sağlaması için kapsayıcı kimliğinizi kullanmanızı öneririz. Bu ad yalnızca GCP'de kullanılır.

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

Yeni bir etiketleme sunucusunun temel hazırlığını yapın

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 projesi kimliğiyle değiştirin:

    gcloud config set project project ID
    
  3. Kabuk komut dosyasını izleyerek 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 ekleyin

  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şturdunuz ve bu sunucuyu bir 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 sizden ücret alınmaz.

2. Üretimde App Engine'i kullanma

production yapılandırmasında her sunucunun maliyeti ayda yaklaşık 40 ABD dolarıdır. Her sunucu, Esnek ortamda 1 vCPU, 0,5 GB bellek, 10 GB disk bulunan bir App Engine örneğidir.

App Engine faturalandırmasını ve faturalandırma uyarılarının nasıl yapılandırılacağını anlamak için App Engine maliyetlerini yönetme bölümüne bakın. Faturalandırma uyarısı ayarlamanı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. 3-6 sunucuyu (varsayılan) otomatik olarak ölçeklendirmenin saniyede 50-200 isteği işleyeceğ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 bir ü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ği sunmak için ek sunucular kurun. En az üç sunucu kullanılmasını öneririz.

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

Günlük kaydı iste

Varsayılan olarak App Engine, aldığı her bir istekle ilgili bilgileri (ör.istek yolu, sorgu parametreleri vb.) günlüğe kaydeder. Etiketleme sunucunuz ayda çok sayıda isteği (ör. 1 milyondan fazla) işleme alıyorsa bu günlük mesajları için yüksek miktarda günlük kaydı ücretleri alınabilir. Günlük kaydı ücretlerini azaltmak veya ortadan kaldırmak için App Engine istek günlük kaydını devre dışı bırakmanızı öneririz.

App Engine istek günlük kaydı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çicisinin, örnek bir Etiket Yöneticisi kapsayıcı kimliğini gösteren ekran görüntüsü.
  2. Type (Tür) için Cloud Logging paketi, Name: _Default satırı için taşma menüsünü seçip Havuzu Düzenle'yi tıklayın.
  3. Havuz hedefi bölümünde, günlük paketini _Default'u seçin.
  4. Havuza eklenecek 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 Havuzu Güncelleme'yi tıklayın. Artık App Engine istekleri günlük kaydından hariç tutulacaktır.

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

Konsol günlük kaydı

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

İstenmeyen konsol günlüklerini belirleyin:

  1. GCP'de Günlük Gezgini'ni açın.
  2. Etiketlerinizden kaynaklanan istenmeyen günlük mesajlarını arayı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ük 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çicisinin, örnek bir Etiket Yöneticisi kapsayıcı kimliğini gösteren ekran görüntüsü.
  2. Type (Tür) için Cloud Logging paketi, Name: _Default satırı için taşma menüsünü seçip Havuzu Düzenle'yi tıklayın.
  3. Havuz hedefi bölümünde, günlük paketini _Default'u seçin.
  4. Havuza eklenecek 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üklerinizde, Custom message: metnini devre dışı bırakmak istediğiniz konsol günlüğünden bir alt dizeyle değiştirin. Daha ayrıntılı filtreler için günlük kaydı sorgu dilini kullanın.

  5. Değişiklikleri uygulamak için Havuzu Güncelleme'yi tıklayın. Eşleşen logToConsole mesajı, günlük kaydından hariç tutulmalıdır.

  6. Günlük Gezgini'nde yeni konsol günlük 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 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 ekleyin

Artık bir sunucunuz olduğuna göre, Google Etiket Yöneticisi'nin sunucunuzu kullanması gerektiğini bildiğinden emin olmalısınız.

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

  2. Etiketleme sunucunuzu göstermek istediğiniz sunucu kapsayıcısını tıklayın.

  3. Yönetici sekmesi > Kapsayıcı Ayarları'nda sunucu kapsayıcı 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

Artık etiketleme sunucunuzu ayarladığınıza göre, doğru şekilde çalıştığından emin olun. 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.

Birden çok URL'yi önizleme

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

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

Eserler Ç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 Önizle 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üzeltmeleri ve yeni özellikler içeriyor. Etiket Yöneticisi güncelleme yapmanızı bildirdiğinde, en azından her ana sürüm sürümü için (ör. 1.x.x sürümünden 2.x.x sürümüne geçme) etiketleme sunucunuzu güncellemenizi öneririz.

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

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 belirlenmiştir.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

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

  1. Sunucu kapsayıcınızda, Önizle düğmesini tıklayarak yeni bir hata ayıklama oturumu başlatın ve ayrı bir sekmede istek gönderin.
  2. Özet bölümünde Konsol sekmesini seçin ve etiketleme sunucusunu güncellemenizi isteyen herhangi bir mesaj olmadığından emin olun.

Etiket Yöneticisi, etiketleme sunucunuzu, başarılı bir şekilde güncellendikten sonra bir gün içinde 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ı zaman aşımına uğrayabilir. Bunun birkaç nedeni olabilir. En yaygın ikisi şu şekildedir:

  1. Hizmet hesaplarının izinleri yanlış: Compute Engine ve App Engine hizmet hesapları, üretim dağıtımının dağıtımından ve sürdürülmesinden sorumludur. Varsayılan olarak, uygun izinlerle önceden yapılandırılmışlardır. Ancak bazı durumlarda, bir kuruluşun politikası bu politikaların yanlış olmasına neden olabilir.

    1. Google Cloud Console'da sol taraftaki gezinme çubuğunda bulunan IAM ve Yönetici sayfasına gidin.
    2. Compute Engine hizmet hesabını (<project_number>-compute@developer.gserviceaccount.com) ve App Engine hizmet hesabını (<project_name>@appspot.gserviceaccount.com) bulun.
    3. Her iki hizmet hesabı da Editor rolüne sahip olmalıdır. Her iki hesap da Editor rolüne sahip değilse hesabın sağındaki kalem simgesini, ardından mevcut rolün açılır menüsünü tıklayıp yukarı kaydırıp Proje'yi ve Düzenleyici'yi tıklayarak rolü güncelleyin.
  2. Yetersiz kota: Üretim dağıtımı, Compute Engine kotasını tüketir. Projede yeterli kota yoksa kaynak sağlanırken dağıtım zaman aşımına uğrayabilir.

    1. Google Cloud Console'da sol taraftaki gezinme çubuğundan IAM ve Yönetici sayfasına gidin ve ardından sol gezinme çubuğundaki Kotalar sekmesini tıklayın.
    2. Sayfanın üst kısmına yakın bir yerde Tabloyu filtrele yazan metin kutusunu tıklayıp 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şareti bulunduğunu doğrulayın.
    4. CPU'lar öğesini bulup tıklayın. Mevcut kullanımın ve dağıtılan örnek sayısının hâlâ dağıtım bölgesi sınırının altında olacağını doğrulayın.