Z tego przewodnika dowiesz się, jak:
- Udostępnianie serwera tagowania w Google Cloud Platform (GCP) App Engine.
- Uaktualnij serwer tagowania, by obsługiwał rzeczywisty ruch.
- Zwiększ lub zmniejsz liczbę serwerów, na których działa Twój kontener Menedżera tagów Google.
- Po udostępnieniu serwera zaktualizuj wersję serwera tagowania.
Wymagania wstępne
- Potrzebujesz konta GCP. Jeśli nie masz konta GCP, utwórz nowe.
- Musisz mieć konto rozliczeniowe GCP. Jeśli go nie masz, utwórz konto rozliczeniowe GCP (wymaga roli twórcy kont rozliczeniowych).
- Musisz mieć rolę Twórca projektu i Użytkownik konta rozliczeniowego. Dowiedz się więcej o dodawaniu ról.
1. Udostępnij serwer
Aby utworzyć nowy serwer tagowania w instancji App Engine:
- Tworzenie w Menedżerze tagów nowego kontenera serwera
- Tworzenie nowego projektu Google Cloud (GCP)
- Udostępnij nowy serwer tagowania App Engine
- Dodać adres URL nowego serwera tagowania do kontenera serwera Menedżera tagów
Tworzenie kontenera serwera Menedżera tagów Google
Otwórz Menedżera tagów Google.
W wierszu konta kliknij rozszerzone menu > Utwórz kontener.
Utwórz nowy kontener serwera.
Kliknij opcję „Ręcznie udostępnij serwer tagowania”. Zwróć uwagę na konfigurację kontenera. Będzie Ci ono potrzebne do obsługi serwera.
Tworzenie nowego projektu GCP
Aby utworzyć nowy projekt GCP na serwerze tagowania:
Otwórz Google Cloud Console.
Nazwij projekt. Dla wygody zalecamy użycie identyfikatora kontenera. Ta nazwa jest używana tylko w GCP.
Zapisz identyfikator projektu GCP, bo potrzebujesz go do utworzenia serwera tagowania.
Udostępnij nowy serwer tagowania
Aby utworzyć serwer tagowania:
Otwórz Cloud Shell.
Ustaw projekt GCP w Cloud Shell. Zastąp
project ID
zanotowanym wcześniej identyfikatorem projektu GCP:gcloud config set project project ID
Utwórz serwer tagowania, postępując zgodnie ze skryptem powłoki. Ustaw typ wdrożenia na
testing
.bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
Dodawanie adresu URL serwera tagowania do Menedżera tagów
Otwórz Menedżera tagów Google.
Na stronie Administracja > Ustawienia kontenera kliknij Dodaj URL. Jeśli nie znasz adresu URL serwera, uruchom to polecenie w Cloud Shell:
gcloud app browse
Wynik: masz skonfigurowany serwer tagowania i udostępnioną konfigurację
testing
. Możesz teraz testować tagowanie po stronie serwera.
Początkowa konfiguracja serwera (testing
)
Konfiguracja testowania jest odpowiednia do poznawania usługi poprzez wysyłanie niewielkich ilości ruchu testowego i korzystanie z funkcji podglądu w Menedżerze tagów. Ta konfiguracja jest klasą instancji F1 App Engine w środowisku Standard i w większości przypadków nie wiąże się z żadnymi kosztami.
2. Korzystanie z App Engine w środowisku produkcyjnym
W konfiguracji production
każdy serwer kosztuje około 40 USD miesięcznie. Każdy serwer to instancja App Engine z 1 vCPU, 0, 5 GB pamięci i dyskiem o pojemności 10 GB w środowisku elastycznym.
W artykule o zarządzaniu kosztami App Engine znajdziesz informacje o płatnościach w App Engine oraz o tym, jak konfigurować alerty rozliczeniowe. Zdecydowanie zalecamy skonfigurowanie alertu dotyczącego płatności.
Zalecane ustawienia produkcji
Zalecamy używanie co najmniej 3 serwerów, aby zmniejszyć ryzyko utraty danych w przypadku awarii serwera. Możesz jednak skonfigurować mniej (lub więcej) serwerów. Oczekujemy, że autoskalowanie serwerów od 3 do 6 (domyślnie) będzie obsługiwać od 50 do 200 żądań na sekundę. Ich skuteczność zależy od liczby tagów i ich funkcji.
Aby skonfigurować serwer tagowania:
- Otwórz Cloud Shell w Google Cloud Platform.
- Ustaw projekt Cloud Platform w Cloud Shell. Zastąp
project ID
zanotowanym wcześniej identyfikatorem projektu GCP:gcloud config set project project ID
- Aby zmienić konfigurację serwera tagowania pod kątem środowiska produkcyjnego, uruchom poniższy skrypt konfiguracji. Wykonaj te czynności:
bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
- Zmień typ wdrożenia na
production
. - Skonfiguruj dodatkowe serwery do obsługi ruchu produkcyjnego. Zalecamy używanie co najmniej 3 serwerów.
- Zmień typ wdrożenia na
Opcjonalnie: wyłącz logowanie
Logowanie żądań
Domyślnie App Engine rejestruje informacje o każdym otrzymywanym żądaniu (np.ścieżce żądania, parametrach zapytania itd.). Jeśli Twój serwer tagowania obsługuje wiele żądań w miesiącu (np. ponad milion), wiadomości logu mogą spowodować znaczne opłaty za rejestrowanie. Aby zmniejszyć lub wyeliminować opłaty za logowanie, zalecamy wyłączenie logowania żądań App Engine.
Aby wyłączyć logowanie żądań App Engine:
- W Google Cloud Platform otwórz router logów. Sprawdź, czy jesteś w projekcie zgodnym z identyfikatorem Twojego kontenera:
- W polu Typ: Zasobnik Cloud Logging, Nazwa: _Default, w wierszu _Default wybierz rozszerzone menu i kliknij Edytuj ujście.
- W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
Dodaj nowy wiersz w sekcji Wybierz logi do uwzględnienia w ujściu. Wpisz tę regułę do istniejącego filtra uwzględniania:
NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT LOG_ID("appengine.googleapis.com/request_log")
Aby wyłączyć też logowanie w systemie równoważenia obciążenia, dodaj nowy wiersz i wpisz tę regułę do istniejącego filtra uwzględniania:
NOT LOG_ID("requests")
Zaktualizuj ujście, aby zastosować zmiany. Teraz żądania App Engine będą wykluczane z logowania.
Sprawdź, czy w logach eksploratora logów nie pojawiają się żadne nowe żądania.
Logowanie konsoli
Serwer tagowania, klienty lub tagi w kontenerze mogą rejestrować w konsoli komunikaty, co może wiązać się z opłatami za rejestrowanie. Aby zmniejszyć lub wyeliminować opłaty za logowanie, możesz wyłączyć niechciane komunikaty logu konsoli.
Zidentyfikuj niechciane dzienniki konsoli:
- W GCP otwórz eksplorator logów.
Poszukaj niepożądanych komunikatów dziennika pochodzących z tagów. Przykład:
Tag może wysyłać takie logi:
const logToConsole = require('logToConsole'); logToConsole('Custom message: ' + data.param1); logToConsole('An important message to keep around!'); data.gtmOnSuccess()
W polu
textPayload
znajdź odpowiednie komunikaty logu:
Aby wyłączyć komunikat dziennika konsoli:
- W Google Cloud Platform otwórz router logów. Sprawdź, czy jesteś w projekcie zgodnym z identyfikatorem Twojego kontenera:
- W polu Typ: Zasobnik Cloud Logging, Nazwa: _Default, w wierszu _Default wybierz rozszerzone menu i kliknij Edytuj ujście.
- W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
Dodaj nowy wiersz w sekcji Wybierz logi do uwzględnienia w ujściu. Wpisz tę regułę do istniejącego filtra uwzględniania:
NOT textPayload:"Custom message:"
W przypadku dzienników konsoli zastąp tekst Custom message: podłańcuchem z dziennika konsoli, który chcesz wyłączyć. Aby uzyskać bardziej szczegółowe filtry, użyj języka zapytań logowania.
Zaktualizuj ujście, aby zastosować zmiany. Pasujący komunikat
logToConsole
powinien być wykluczony z logowania.Sprawdź, czy w eksploratorze logów nie wyświetlają się żadne nowe komunikaty dziennika konsoli.
3. Mapowanie wdrożenia na własną domenę
Domyślne wdrożenie tagowania po stronie serwera jest hostowane w domenie App Engine. Zalecamy zmodyfikowanie wdrożenia tak, aby wykorzystywało subdomenę swojej witryny.
Zmapuj subdomenę swojej witryny na serwer tagowania
4. Dodaj adres URL serwera do Menedżera tagów Google
Skoro masz już serwer, musisz się upewnić, że Menedżer tagów Google ma dostęp do Twojego serwera.
Otwórz Menedżera tagów Google.
Kliknij kontener serwera, który ma wskazywać Twój serwer tagowania.
Otwórz ustawienia kontenera serwera na karcie Administracja > Ustawienia kontenera.
Kliknij Dodaj URL i wklej adres URL serwera.
Zapisz i wróć do obszaru roboczego.
5. Weryfikacja
Po skonfigurowaniu serwera tagowania upewnij się, że działa on prawidłowo. W obszarze roboczym Menedżera tagów kliknij przycisk Podgląd. Jeśli strona podglądu się załaduje, wszystko jest skonfigurowane poprawnie.
Wyświetlanie podglądu wielu adresów URL
Jeśli na 1 serwer tagowania masz zmapowanych wiele domen, sprawdź, czy w ustawieniach kontenera zostały dodane wszystkie adresy URL.
Jeśli podasz kilka adresów URL, wszystkie ścieżki (ciąg znaków po nazwie domeny) muszą być takie same.
Utwory | Nie działa |
---|---|
URL 1: example.com/abc URL 2: example2.com/abc |
URL 1: example.com/abc URL 2: example2.com/def |
Jeśli dodasz większą liczbę adresów URL, obok przycisku Podgląd zobaczysz ikonę, która umożliwi wybranie adresu, którego podgląd chcesz wyświetlić.
Zaktualizuj wersję serwera tagowania
Nowe aktualizacje serwera tagowania zawierają poprawki zabezpieczeń i nowe funkcje. Zalecamy aktualizację serwera tagowania w przypadku każdej głównej wersji (np. uaktualnienia z wersji 1.x.x do 2.x.x), gdy Menedżer tagów powiadomi Cię o aktualizacji.
Aby zaktualizować serwer tagowania, uruchom ponownie skrypt konfiguracji z użyciem tych samych ustawień. Dotychczasowe ustawienia zostaną wybrane domyślnie.
Aby zaktualizować serwer tagowania:
- Otwórz Cloud Shell w Google Cloud Platform.
- Ustaw projekt Cloud Platform w Cloud Shell. Zastąp
project ID
zanotowanym wcześniej identyfikatorem projektu GCP:gcloud config set project project ID
- Uruchom skrypt konfiguracji z użyciem tych samych ustawień, co wcześniej. Dotychczasowe ustawienia zostaną ustawione domyślnie.
bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
Aby sprawdzić, czy aktualizacja się powiodła:
- W kontenerze serwera kliknij przycisk Podgląd, aby rozpocząć nową sesję debugowania i wysłać żądanie na osobnej karcie.
- W podsumowaniu wybierz kartę Konsola i upewnij się, że nie ma żadnych komunikatów z prośbą o zaktualizowanie serwera tagowania.
Menedżer tagów może wyświetlać komunikaty z prośbą o zaktualizowanie serwera tagowania przez maksymalnie 1 dzień od zakończenia tej aktualizacji. Na stronie podglądu będzie jednak widoczny aktualny komunikat o wersji serwera tagowania.
Rozwiązywanie problemów z limitami czasu wdrożenia produkcyjnego
Gdy uruchomisz skrypt konfiguracji, by utworzyć lub zmienić konfigurację serwera tagowania, może nastąpić przekroczenie limitu czasu. Istnieje kilka przyczyn. Oto dwa najpopularniejsze:
Konta usługi mają nieprawidłowe uprawnienia – konta usług Compute Engine i App Engine są odpowiedzialne za wdrażanie i utrzymywanie wdrożenia produkcyjnego. Domyślnie mają one wstępnie skonfigurowane uprawnienia. Jednak w niektórych przypadkach zasady organizacji mogą być nieprawidłowe.
- Otwórz stronę Administracja na pasku nawigacyjnym po lewej stronie w konsoli Google Cloud.
- Znajdź konto usługi Compute Engine
<project_number>-compute@developer.gserviceaccount.com
i konto usługi App Engine<project_name>@appspot.gserviceaccount.com
. - Oba konta usługi muszą mieć przypisaną rolę
Editor
. Jeśli żadne z tych kont nie ma przypisanej roliEditor
, zaktualizuj ją, klikając ikonę ołówka po prawej stronie konta, klikając menu istniejącej roli, przewijając do góry i klikając Projekt, a następnie Edytujący.
Niewystarczający limit – wdrożenie produkcyjne wykorzystuje limit Compute Engine. Jeśli projekt nie ma wystarczającego limitu, podczas próby udostępnienia zasobów wdrożenie może przekroczyć limit czasu.
- Otwórz stronę Administracja na pasku nawigacyjnym po lewej stronie w konsoli Google Cloud, a następnie kliknij kartę Limity na pasku nawigacyjnym po lewej stronie.
- U góry strony kliknij pole tekstowe Filtruj tabelę i wpisz
Compute Engine API
. Kliknij jedyny wynik. - Sprawdź, czy wszystkie stany limitów mieszczą się w granicach lub są oznaczone zielonym znacznikiem wyboru.
- Znajdź i kliknij Procesory. Sprawdź, czy bieżące wykorzystanie plus liczba wdrażanych instancji będzie nadal mieścić się w limicie dla regionu wdrożenia.