App Engine ile sunucu tarafı etiketleme ayarlama

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

  • Google Cloud Platform (GCP) App Engine'da bir etiketleme sunucusu hazırlayın.
  • Etiketleme sunucusunu canlı trafiği işleyebilecek ş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 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 ihtiyacınız var. Rol ekleme hakkında daha fazla bilgi edinin.

1. Sunucu oluşturma

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 hazırlama
  • 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ünü > 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. Sunucunuzun temel hazırlığını yapmak için bu koda ihtiyacınız olacaktı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 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 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ı, 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 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 çok) 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 işlevine 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 projesi 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 öneririz.

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

İstek günlüğü

Varsayılan olarak App Engine, aldığı her istekle ilgili bilgileri (ör. istek yolu, sorgu parametreleri) 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üğü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: 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 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, mesajları konsola kaydedebilir. Bu durumda günlük kaydı ücretleri alınabilir. 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 tanımlama:

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

    textPayload alanında ilgili günlük mesajlarını bulun:
    Ö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 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 textPayload:"Custom message:"
    

    Konsol günlüklerinizde 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 sunucunuza yönlendirmek 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 ayarladıktan sonra, amaçlandığı şekilde ç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 fazla URL'yi önizleme

Birden fazla alanı tek bir etiketleme sunucusuyla 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.

Çalışmalar Çalışmıyor
1. URL: example.com/abc
2. URL: example2.com/abc
URL 1: example.com/abc
URL 2: 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 bilgilendirdiğinde en azından her ana sürüm için (ör. 1.x.x sürümünden 2.x.x sürümüne yükseltme) 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 ayarlanır.

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. Bununla birlikte, ö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ının zaman aşımı olabilir. 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 Console'un sol gezinme çubuğunda 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 herhangi birinde Editor rolü yoksa hesabın sağındaki kalem simgesini, mevcut rolün açılır listesini tıklayarak en üste ilerleyip Proje 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.