Cloud Run ile sunucu tarafı etiketleme ayarlama

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

  • Kapsayıcı için önizleme özelliğini etkinleştirmek üzere bir önizleme sunucusu hazırlayın.
  • Canlı trafiği işlemek 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.
  • 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 sahip olmanız gerekir. Roller ekleme hakkında daha fazla bilgi edinin.

Önizleme ve etiketleme sunucusu sağlama

Cloud Run hizmetlerinin temel hazırlığını Google Etiket Yöneticisi'nde otomatik olarak veya Google Cloud'da manuel olarak yapabilirsiniz.

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

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

  1. Cloud Run'u açın.
  2. Ayarlama yapmanız gereken hizmeti seçin.
  3. Yeni Düzeltmeyi 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 yaklaşık 45 ABD doları (aylık)'dır. Her sunucu, her zaman ayrılmış CPU 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. 2-10 sunucunun otomatik ölçeklendirmesi saniyede 35-350 isteği işleyecektir. Ancak performans, etiketlerin sayısına ve bu etiketlerin işlevine göre değişecektir.

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

Cloud Run hesaplayıcısı

İ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 sitenizin dünya genelinde varlığı varsa 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'yi not edin.

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

  1. REGION yerine önizleme sunucusunun dağıtıldığı bölgeyi yazın. Önizleme ve etiketleme sunucusunu ayarlamak için komut satırı seçeneklerini uyguladıysanız bu alan zaten doldurulmuş olabilir.
  2. CONTAINER_CONFIG değerini Etiket Yöneticisi'ndeki kapsayıcı yapılandırması dizesiyle değiştirin. Önizleme ve etiketleme sunucusunu ayarlamak için komut satırı seçeneklerini uyguladıysanız bu alan zaten doldurulmuş olabilir.
  3. NEW_REGION yerine, etiketleme sunucusunun dağıtılmasını istediğiniz yeni bölgeyi yazın.
  4. BACKEND_NAME yerine, yük dengeleyiciyi hazırlıyorken 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üğü

Varsayılan olarak her istekle ilgili bilgiler (ör.istek yolu, sorgu parametreleri vb.) günlüğe 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ük kaydı ü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:
    Ö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("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 Yönlendiriciyi Güncelle'yi tıklayın. Artık istekler günlük kaydından hariç tutulacaktır.

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

    İ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. 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üklerindeki 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.

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

Özel alan oluşturmak için global 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 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.

4. 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
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örünür.

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

  1. Cloud Run'u 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 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.