Cloud Run ile sunucu tarafı etiketleme ayarlama

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

  • Kapsayıcıda önizleme özelliğini etkinleştirmek için bir önizleme sunucusunun temel hazırlığını yapın.
  • Canlı trafiği yönetmek için bir etiketleme sunucusu hazırlayın.
  • 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.

Önizleme ve etiketleme sunucusunun temel hazırlığını yapma

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

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

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üzeltme Düzenle ve Dağıt'ı tıklayın.
  4. Değişiklikleri yapın ve Dağıt'ı tıklayın.

Cloud Run maliyeti

Bu Cloud Run yapılandırmasında her sunucunun maliyeti ayda yaklaşık 45 ABD dolarıdır. Her sunucu, her zaman ayrılan CPU fiyatlandırma modelini kullanan 1 vCPU ve 0,5 GB bellek içeren 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. 2-10 sunucuyu otomatik olarak ölçeklendirmenin saniyede 35-350 isteği işlemesini bekleriz. Ancak performans, etiket sayısına ve bu etiketlerin ne yaptığına göre değişir.

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

Cloud Run hesap makinesi

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

Daha önce bir App Engine dağıtımı oluşturduysanız ve artık App Engine dağıtımı 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 dünya genelinde faaliyet gösteriyorsa veya hizmetinize 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 tarihine dikkat 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 sunucusunun temel hazırlığını yapmak için komut satırı seçeneklerini izlediyseniz bu önceden doldurulmuş olabilir.
  2. CONTAINER_CONFIG değerini Etiket Yöneticisi'ndeki kapsayıcı yapılandırma dizesiyle değiştirin. Önizleme ve etiketleme sunucusunun temel hazırlığını yapmak için komut satırı seçeneklerini izlediyseniz bu önceden doldurulmuş olabilir.
  3. NEW_REGION kısmını, etiketleme sunucusunun dağıtılmasını istediğiniz yeni bölgeyle değiştirin.
  4. Yük dengeleyicinin temel hazırlığını yaparken BACKEND_NAME öğesini seçtiğiniz adla değiştirin.
  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

Günlük kaydı iste

Varsayılan olarak her bir istekle ilgili bilgiler (ör.istek yolu, sorgu parametreleri vb.) günlüğe kaydedilir. Etiketleme sunucunuz ayda çok sayıda isteği (ör. 1 milyondan fazla) işlemesi durumunda, bu günlük mesajları önemli ölçüde günlük kaydı ücretlerine tabi olabilir. Günlük kaydı ücretlerini azaltmak veya ortadan kaldırmak için istek günlüğü kaydını devre dışı bırakmanızı öneririz.

İstek 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("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 Havuzu Güncelleme'yi tıklayın. Artık istekler günlük kaydından hariç tutulur.

  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.

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

Özel alan oluşturmak için genel bir harici Uygulama Yük Dengeleyici kullanın.

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

4. 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 yeni bir düzeltme dağıtın.

  1. Cloud Run'ı açın.
  2. Güncellemek istediğiniz hizmeti seçin.
  3. Yeni Düzeltme Düzenle ve Dağıt'ı tıklayın.
  4. Kapsayıcı 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. 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.