Bu kılavuzda aşağıdakiler açıklanmaktadır:
- Google Cloud Platform (GCP) App Engine'de etiketleme sunucusu sağlayın.
- Etiketleme sunucusunu canlı trafiği işleyecek ş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
- GCP hesabınızın olması gerekir. Hesabınız yoksa yeni bir GCP hesabı oluşturun.
- 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).
- Proje Oluşturucu ve Faturalandırma Hesabı Kullanıcısı rolüne ihtiyacınız var. Roller ekleme hakkında daha fazla bilgi edinin.
1. Sunucu temel hazırlığını yapma
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 oluşturma
- Yeni etiketleme sunucusunun URL'sini Etiket Yöneticisi sunucu kapsayıcısına ekleyin
Google Etiket Yöneticisi sunucu kapsayıcısı oluşturma
Google Etiket Yöneticisi'ni açın.
Hesap satırında, taşma menüsü > Kapsayıcı Oluştur'u tıklayın.
Yeni bir sunucu kapsayıcısı oluşturun.
"Etiketleme sunucunuzu manuel olarak hazırlayın" radyo düğmesini tıklayın. Kapsayıcı yapılandırmasına dikkat edin. Sunucunuzu ayarlamak için bu anahtara ihtiyacınız vardır.
Yeni bir GCP projesi oluşturma
Etiketleme sunucunuz için yeni bir GCP projesi oluşturmak üzere:
Google Cloud Console'u açın.
Projenize bir ad verin. Kolaylık sağlamak için kapsayıcı kimliğinizi kullanmanızı öneririz. Bu ad yalnızca GCP'de kullanılır.
Etiketleme sunucunuzu oluşturmak için bu bilgilere ihtiyacınız olacağından GCP proje kimliğini not edin.
Yeni bir etiketleme sunucusu hazırlayın
Etiketleme sunucunuzu oluşturmak için:
Cloud Shell'i açın.
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
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
Google Etiket Yöneticisi'ni açın.
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ı, küçük miktarlarda 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.
Önerilen üretim ayarları
Sunucu kesintisi durumunda veri kaybı riskini azaltmak için en az 3 sunucu çalıştırmanızı öneririz. Ancak daha az (veya daha fazla) 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 ne yaptığına bağlıdır.
Etiketleme sunucunuzu yapılandırmak için:
- Google Cloud Platform Cloud Shell'i açın.
- 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
- 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)"
- Dağıtım türünü
production
olarak değiştirin. - Üretim trafiğini yayınlamak için ek sunucular ayarlayın. En az üç sunucu kullanmanızı öneririz.
- Dağıtım türünü
İsteğe bağlı: Günlük kaydını devre dışı bırakma
İstek günlüğü
App Engine, varsayılan olarak aldığı her istekle ilgili bilgileri (ör.istek yolu, sorgu parametreleri vb.) 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ük kaydını devre dışı bırakmak için:
- Google Cloud platformunda Günlük Yönlendirici'yi açın. Kapsayıcı kimliğinizle eşleşen projede olduğunuzdan emin olun:
- 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.
- Hedef havuzu bölümünde, günlükler paketini _Default seçin.
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("appengine.googleapis.com/nginx.request") AND NOT LOG_ID("appengine.googleapis.com/request_log")
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")
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.
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 belirleyin:
- GCP'de Günlük Gezgini'ni açın.
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:
Konsol günlük mesajını devre dışı bırakmak için:
- Google Cloud Platform'da Günlük Yönlendirici'yi açın. Kapsayıcı kimliğinizle eşleşen projede olduğunuzdan emin olun:
- Type: Cloud Logging paketi, Ad: _Default satırında taşma menüsünü seçip Havuzu Düzenle'yi tıklayın.
- Hedef havuzu bölümünde, günlükler paketini _Default seçin.
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 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.
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.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.
Google Etiket Yöneticisi'ni açın.
Etiketleme sunucunuzu işaret etmek istediğiniz sunucu kapsayıcısını tıklayın.
Yönetici sekmesi > Kapsayıcı Ayarları'ndan sunucu kapsayıcı ayarlarınızı açın.
URL ekle'yi tıklayın ve sunucu URL'nizi yapıştırın.
Kaydet'i tıklayın ve çalışma alanınıza geri dönün.
5. Doğrulama
Etiketleme sunucunuzu oluşturduğunuza göre artık beklendiği gibi ç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 çok URL'yi önizleme
Birden fazla alanı tek bir etiketleme sunucusuna eşlediyseniz her bir 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ö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 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 kurulum komut dosyasını yeniden çalıştırın. Mevcut ayarlar varsayılan olarak belirlenir.
Etiketleme sunucunuzu güncellemek için:
- Google Cloud Platform Cloud Shell'i açın.
- 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
- 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:
- 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.
- Ö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.
Ü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ı zaman aşımına uğrayabilir. Bunun birkaç nedeni olabilir. En yaygın iki sorun şunlardır:
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.
- Google Cloud konsolunda soldaki gezinme çubuğundan IAM ve Yönetici sayfasına gidin.
- Compute Engine hizmet hesabını
<project_number>-compute@developer.gserviceaccount.com
ve App Engine hizmet hesabını<project_name>@appspot.gserviceaccount.com
bulun. - Her iki hizmet hesabı da
Editor
rolüne sahip olmalıdır. Hesaplardan birindeEditor
rolü yoksa hesabın sağındaki kalem simgesini, mevcut rolün açılır menüsünü, en üste ilerleyip Proje'yi ve ardından Düzenleyici'yi tıklayarak rolü güncelleyin.
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.
- 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.
- 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. - Tüm kota durumlarının sınır dahilinde olduğunu veya yeşil onay işareti içerdiğini doğrulayın.
- 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.