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 sunucusu hazırlayı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.
  • Sunucu temel hazırlığını yaptıktan sonra etiketleme sunucunuzun sürümünü güncel tutun.

Ön koşullar

  1. 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ı rollerine sahip olmanız gerekir. 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ü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ü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 aylık 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 bulunan bir Cloud Run örneğidir.

Sunucu kesintisi durumunda veri kaybı riskini azaltmak için en az 2 örnek çalıştırmanızı öneririz. Bununla birlikte, daha az (veya daha fazla) sunucu çalıştırmayı tercih edebilirsiniz. 2-10 sunucuyu otomatik olarak ölçeklendirmenin saniyede 35-350 isteği ele almasını bekleriz ancak performans, etiket sayısına ve bu etiketlerin ne yaptığına göre değişir.

Cloud Run, yükle birlikte 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ığı sürece 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 hiç 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 dünya genelinde faaliyet gösteriyorsa 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 öğesini 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 sunucusunun temel hazırlığını yapmak için komut satırı seçeneklerini izlediyseniz bu alan önceden doldurulmuş olabilir.
  2. CONTAINER_CONFIG öğesini 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 alan ö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 (ör. 1 milyondan fazla) isteği yerine getiriyorsa 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üğü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. Tür: Cloud Logging paketi, Ad: _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 _Default günlük paketini 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 Havuzu güncelleyin. Artık bu 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 konsola mesaj kaydedebilir. Bu da günlük kaydı ücretlerinin alınmasına 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:

    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:
    örnek günlükleri gösteren GCP Günlük Gezgini'nin 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. Tür: Cloud Logging paketi, Ad: _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 _Default günlük paketini 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, konsol günlüğünden devre dışı bırakmak istediğiniz 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üncelleyin. 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 adı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 ekleme

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 işaret etmek 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ıp çalışma alanınıza dönün.

4. Doğrulama

Etiketleme sunucunuzu oluşturduğunuza göre sunucunun istediğiniz ş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 (alan adından sonraki dize) eşleşmelidir.

Eserler Çalışmaz
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üncelleyin

Yeni etiketleme sunucusu güncellemelerinde güvenlik açığı düzeltmeleri ve yeni özellikler bulunmaktadır. Etiket Yöneticisi güncelleme yapmanızı bildirdiğinde, etiketleme sunucunuzu 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 yükseltme) 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, yeni bir hata ayıklama oturumu başlatmak ve ayrı bir sekmede istek göndermek için Önizle düğmesini tıklayın.
  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, sunucu başarıyla güncellendikten sonra bir gün içinde etiketleme sunucunuzu güncellemenizi isteyen mesajlar gösterebilir. Ancak önizleme sayfasında, etiketleme sunucusu sürümü hakkında güncel bir mesaj görüntülenir.