App Engine ile sunucu tarafı etiketleme ayarlama

Bu kılavuzda aşağıdakiler açıklanmaktadır:

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

Ön koşullar

  1. GCP hesabınızın olması gerekir. 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 ihtiyacınız var. Roller ekleme hakkında daha fazla bilgi edinin.

1. Sunucu temel hazırlığını yapma

App Engine örneğinde yeni bir etiketleme sunucusu oluşturmak için:

  • Etiket Yöneticisi'nde yeni bir sunucu kapsayıcısı oluşturma
  • Yeni bir Google Cloud projesi (GCP) oluşturma
  • Yeni bir App Engine etiketleme sunucusu oluşturma
  • 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 sunucunuzu manuel olarak hazırlayın" radyo düğmesini tıklayın. Kapsayıcı yapılandırmasına dikkat edin. Sunucunuzu ayarlamak için bu anahtara ihtiyacınız vardır.

Yeni bir GCP projesi oluşturma

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 bir ad verin. Kolaylık sağlamak 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 bu bilgilere ihtiyacınız olacağından GCP proje kimliğini not edin.

Yeni bir etiketleme sunucusu hazırlayı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 proje 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şturdunuz ve testing yapılandırmasıyla temel hazırlığını yaptınız. Artık sunucu tarafı etiketlemeyi test edebilirsiniz.

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

Test yapılandırması, küçük miktarlarda 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 maliyete neden olmaz.

2. App Engine'i üretimde kullanma

production yapılandırmasında her sunucunun maliyeti yaklaşık 40 ABD doları (aylık) 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ını ve faturalandırma uyarılarını nasıl yapılandıracağınızı öğrenmek için App Engine maliyetlerini yönetme başlıklı makaleyi inceleyin. 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. 3-6 sunucunun otomatik ölçeklendirilmesi (varsayılan) saniyede 50-200 isteği işleyecektir. Performans, etiketlerin 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 proje 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ğini yayınlamak 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üğü

App Engine, varsayılan olarak aldığı her istekle ilgili bilgileri (ör.istek yolu, sorgu parametreleri vb.) günlüğe kaydeder. Etiketleme sunucunuz ayda çok sayıda istek (ör. 1 milyondan fazla) işliyorsa bu günlük mesajları önemli günlük ücretlerine neden olabilir. Günlüğe kayıt ücretlerini azaltmak veya ortadan kaldırmak için App Engine istek günlüğe 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 platformunda Günlük Yönlendirici'yi açın. Kapsayıcı kimliğinizle eşleşen projede olduğunuzdan emin olun:
    Örnek bir Etiket Yöneticisi kapsayıcı kimliğini gösteren GCP proje seçicisinin ekran görüntüsü.
  2. Tür: Cloud Logging paketi, Ad: _Varsayılan satırı için taşma menüsünü seçin ve ardından Havuzu Düzenle'yi tıklayın.
  3. Hedef havuzu bölümünde, günlükler paketini _Default 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 Yönlendiriciyi Güncelle'yi tıklayın. Artık App Engine istekleri günlük kaydından hariç tutulacak.

  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, konsola iletileri günlük kaydına alabilir. Bu işlem günlük kaydı ücretlerine neden olabilir. Günlük kaydı ücretlerini azaltmak veya ortadan kaldırmak için istenmeyen konsol günlük 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:

    Etiketler 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()
    

    İlgili günlük mesajlarını textPayload alanında arayın:
    Örnek günlükleri gösteren GCP Günlük Gezgini 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:
    Örnek bir Etiket Yöneticisi kapsayıcı kimliğini gösteren GCP proje seçicisinin ekran görüntüsü.
  2. Type: Cloud Logging paketi, Ad: _Default satırında taşma menüsünü seçip Havuzu Düzenle'yi tıklayın.
  3. Hedef havuzu bölümünde, günlükler paketini _Default seçin.
  4. Choose logs to include in havuz (Havuza dahil edilecek günlükleri seçin) bölümüne 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 Yönlendiriciyi Güncelle'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 mesajı görünmediğini doğrulayın.

3. Dağıtımla özel alanınızı eşleme

Varsayılan sunucu tarafı etiketleme dağıtımı bir App Engine alanında barındırılır. Dağıtım işlemini, 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 bilmesi gerekir.

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

  2. Etiketleme sunucunuzu işaret etmek istediğiniz sunucu kapsayıcısını tıklayın.

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

Etiketleme sunucunuzu oluşturduğunuza göre artık beklendiği gibi çalıştığından emin olun. Etiket Yöneticisi çalışma alanınızda Önizleme düğmesini tıklayın. Önizleme sayfası yükleniyorsa her şey doğru şekilde ayarlanmıştır.

Birden çok URL'yi önizleme

Birden fazla alanı tek bir etiketleme sunucusuna eşlediyseniz her bir 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.

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

Birden fazla URL eklenirse önizlenecek URL'yi seçmenize olanak tanıyan bir simge Önizle düğmesinin yanında gösterilir.

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

Yeni etiketleme sunucusu güncellemeleri, güvenlik açığı düzeltmeleri ve yeni özellikler içerir. Etiket Yöneticisi sizi güncelleme konusunda uyardığında, en azından her büyük sürüm yayını için etiketleme sunucunuzu güncellemenizi öneririz (ör. 1.x.x sürümünden 2.x.x sürümüne yükseltme).

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 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 proje kimliğiyle değiştirin:
    gcloud config set project project ID
  3. Daha önce kullandığınız ayarları kullanarak kurulum komut dosyasını ç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 bölümünde Konsol sekmesini seçin ve etiketleme sunucusunu güncellemenizi isteyen bir mesaj olmadığından emin olun.

Etiket Yöneticisi, sunucu başarıyla güncellendikten sonra bir güne kadar etiketleme sunucunuzu güncellemenizi isteyen mesajlar gösterebilir. Ancak önizleme sayfasında, etiketleme sunucusu sürümü hakkında güncel bir mesaj gösterilir.

Üretim dağıtımında zaman aşımı sorunlarını 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 iki sorun şunlardır:

  1. Hizmet hesaplarında yanlış izinler var: Üretim dağıtımının dağıtılması ve bakımı Compute Engine ve App Engine hizmet hesaplarından sorumludur. Varsayılan olarak, uygun izinlerle önceden yapılandırılırlar. Ancak bazı durumlarda, kuruluşun politikası nedeniyle bu bilgiler yanlış olabilir.

    1. Google Cloud konsolunda soldaki gezinme çubuğundan 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. Hesaplardan birinde Editor rolü yoksa hesabın sağındaki kalem simgesini, mevcut rolün açılır menüsünü, en üste ilerleyip Proje'yi ve ardından Düzenleyici'yi tıklayarak rolü güncelleyin.
  2. Yetersiz kota: Üretim dağıtımı, Compute Engine kotasını tüketiyor. Projede yeterli kota yoksa dağıtım, kaynak sağlamaya çalışırken zaman aşımına uğrayabilir.

    1. Google Cloud Console'un sol gezinme çubuğunda IAM ve Yönetici sayfasına gidin, ardından sol gezinme çubuğundaki Kotalar sekmesini tıklayın.
    2. Sayfanın üst kısmında 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şareti içerdiğini doğrulayın.
    4. CPU'lar'ı bulup tıklayın. Mevcut kullanım ve dağıtılan örnek sayısı toplamının, dağıtım bölgesi sınırının altında kalacağını doğrulayın.