Cloud Run ile sunucu tarafı etiketleme ayarlama

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

  • Kapsayıcı için önizleme özelliğini etkinleştirmek üzere bir önizleme sunucusu sağlayın.
  • Canlı trafiği işlemek için bir etiketleme sunucusu sağlayın.
  • 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.

Önizleme ve etiketleme sunucusu sağlama

Cloud Run hizmetini Google Etiket Yöneticisi'nde otomatik olarak veya Google Cloud'da manuel olarak sağlayabilirsiniz.

Hizmet yapılandırmasını düzenleme

Hizmet yapılandırmanızı değiştirmek için:

  1. Cloud Run'ı açın.
  2. Ayarlamanız gereken hizmeti seçin.
  3. Yeni Düzeltmeyi Düzenle ve Dağıt'ı tıklayın.
  4. Değişiklikleri yapıp Dağıt'ı tıklayın.

Cloud Run maliyeti

Bu Cloud Run yapılandırmasında her sunucunun maliyeti yaklaşık 45 ABD doları /aydır. Her sunucu, CPU her zaman ayrılmış fiyatlandırma modelini kullanan 1 vCPU ve 0,5 GB belleğe sahip bir Cloud Run örneğidir.

Sunucu kesintisi durumunda veri kaybı riskini azaltmak için en az 2 örnek çalıştırmanızı öneririz. Ancak daha az (veya daha fazla) sunucu çalıştırmayı seçebilirsiniz. Performans, etiket sayısına ve bu etiketlerin işlevine göre değişse de 2-10 sunucunun otomatik ölçeklendirilmesinin saniyede 35-350 isteği işleyebileceğini tahmin ediyoruz.

Cloud Run, yüke göre dinamik olarak ölçeklendirilir. max-instances ayarı, kaynaklar için ne kadar ödeme yapmanız gerektiğiyle ilgili en kötü senaryodur. Cloud Run, gerekli olmadığı sürece bu kadar çok örnek sağlamaz.

Cloud Run maliyet tahmini

Etiketleme sunucularınızı çalıştırmanın aylık maliyetini tahmin etmek için Google Cloud Fiyat Hesaplayıcı'yı kullanın. Hesap makinesi, varsayılan bir sunucu tarafı etiketleme dağıtımı için önceden yapılandırılmış bir tahminle açılır. Ayarları, beklenen trafiğinize göre daha doğru bir tahmin elde edecek şekilde ayarlayabilirsiniz.

İsteğe bağlı: App Engine'den taşıma

Daha önce bir App Engine dağıtımı oluşturduysanız ve artık trafik almadığını doğruladıysanız beklenmedik faturalandırma ücretlerini önlemek için App Engine uygulamasını devre dışı bırakın.

İsteğe bağlı: Çok bölgeli dağıtım

Web siteniz küresel olarak kullanılıyorsa veya hizmete yedeklilik eklemek istiyorsanız etiketleme sunucularını birden fazla bölgeye dağıtın.

Başlamadan önce:

  1. Yük dengeleyici oluşturma
  2. Seçtiğiniz BACKEND_NAME'yı not edin.

Dağıtımınıza daha fazla bölge eklemek için:

  1. REGION kısmını, önizleme sunucusunun dağıtıldığı bölgeyle değiştirin. Önizleme ve etiketleme sunucusunu sağlarken komut satırı seçeneklerini kullandıysanız bu alan zaten doldurulmuş olabilir.
  2. CONTAINER_CONFIG yerine Etiket Yöneticisi'ndeki kapsayıcı yapılandırma dizesini girin. Önizleme ve etiketleme sunucusunu sağlama için komut satırı seçeneklerini uyguladıysanız bu alan zaten doldurulmuş olabilir.
  3. NEW_REGION kısmını, etiketleme sunucusunun dağıtılmasını istediğiniz yeni bölgeyle değiştirin.
  4. BACKEND_NAME yerine, yük dengeleyiciyi sağlarken seçtiğiniz adı yazın.
  5. İsteğe bağlı: Başka bir bölge eklemek için NEW_REGION değişkenini değiştirin ve kod snippet'ini yeniden çalıştırın.
    gcloud run deploy "server-side-tagging" \
    --region NEW_REGION \
    --image gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable \
    --platform managed \
    --ingress all \
    --min-instances 2 \
    --max-instances 10 \
    --timeout 60 \
    --allow-unauthenticated \
    --no-cpu-throttling \
    --update-env-vars PREVIEW_SERVER_URL="$(
      gcloud run services describe server-side-tagging-preview \--region "REGION" \
      --format="value(status.url)")",CONTAINER_CONFIG="CONTAINER_CONFIG" && \

    gcloud compute network-endpoint-groups create server-side-tagging-neg \
    --region=NEW_REGION \
    --network-endpoint-type=SERVERLESS \
    --cloud-run-service="server-side-tagging" && \

    gcloud compute backend-services add-backend --global "BACKEND_NAME" \
    --network-endpoint-group-region=NEW_REGION \
    --network-endpoint-group=server-side-tagging-neg

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

İstek günlüğü kaydı

Varsayılan olarak her istek hakkındaki bilgiler (ör.istek yolu, sorgu parametreleri vb.) kaydedilir. Etiketleme sunucunuz ayda çok sayıda istek (ö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 istek günlüğünü devre dışı bırakmanızı öneririz.

İstek 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("run.googleapis.com/requests")
    
  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 (Güncelleme Senkronizasyonu) tıklayın. Artık istekler günlüğe kaydetme işlemine dahil edilmeyecek.

  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 ü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, ardından 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 kaydedilmemelidir.

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

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

Cloud Run'ın sağladığı varsayılan adres dışında bir alan kullanmak için özel alan oluşturun.

3. 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.

4. Doğrulama

Etiketleme sunucunuzu ayarladığınıza göre, 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üklenirse her şey doğru şekilde ayarlanmıştır.

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 istediğ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 daha önce kullandığınız ayarları kullanarak yeni bir düzeltme dağıtın.

  1. Cloud Run'ı açın.
  2. Güncellemek istediğiniz hizmeti seçin.
  3. Yeni Düzeltmeyi Düzenle ve Dağıt'ı tıklayın.
  4. Container görüntüsü URL'sinin gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable olarak ayarlandığından emin olun ve Dağıt'ı tıklayın.

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 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.