Konfigurowanie tagowania po stronie serwera za pomocą App Engine

Z tego przewodnika dowiesz się, jak:

  • Skonfiguruj serwer tagowania w usłudze Google Cloud Platform (GCP) App Engine.
  • Uaktualnij serwer tagowania, aby obsługiwał aktualne natężenie ruchu.
  • Zwiększ lub zmniejsz liczbę serwerów, na których działa kontener Menedżera tagów Google.
  • Po skonfigurowaniu serwera tagowania dbaj o to, aby jego wersja była aktualna.

Wymagania wstępne

  1. Musisz mieć konto GCP. Jeśli nie masz konta, utwórz nowe konto GCP.
  2. Musisz mieć konto rozliczeniowe GCP. Jeśli nie masz konta rozliczeniowego GCP, utwórz je (wymaga roli Twórca konta rozliczeniowego).
  3. Musisz mieć rolę twórcy projektu i użytkownika konta rozliczeniowego. Dowiedz się więcej o dodawaniu ról.

1. Aprowizowanie serwera

Aby utworzyć nowy serwer tagowania w instancji App Engine, musisz:

  • Tworzenie nowego kontenera serwera w Menedżerze tagów
  • Tworzenie nowego projektu Google Cloud (GCP)
  • Udostępnianie nowego serwera tagowania App Engine
  • Dodaj adres URL nowego serwera tagowania do kontenera serwera Menedżera tagów.

Tworzenie kontenera serwera Menedżera tagów Google

  1. Otwórz Menedżera tagów Google.

  2. W wierszu konta kliknij rozszerzone menu > Utwórz kontener.

  3. Utwórz nowy kontener serwera.

  4. Kliknij przycisk „Skonfiguruj serwer tagowania samodzielnie”. Zwróć uwagę na konfigurację kontenera. Będzie on potrzebny do udostępnienia serwera.

Tworzenie nowego projektu GCP

Aby utworzyć nowy projekt GCP na potrzeby serwera tagowania:

  1. Otwórz konsolę Google Cloud.

  2. Utwórz nowy projekt GCP.

  3. Nadaj projektowi nazwę. Dla wygody zalecamy używanie identyfikatora kontenera. Ta nazwa jest używana tylko w GCP.

  4. Zanotuj identyfikator projektu GCP, ponieważ będzie on potrzebny do utworzenia serwera tagowania.

Udostępnianie nowego serwera tagowania

Aby utworzyć serwer tagowania:

  1. Otwórz Cloud Shell.

  2. Ustaw projekt GCP w Cloud Shell. Zastąp project ID identyfikatorem projektu GCP, który został zapisany wcześniej:

    gcloud config set project project ID
    
  3. 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

  1. Otwórz Menedżera tagów Google.

  2. W sekcji Administracja > Ustawienia kontenera kliknij Dodaj URL. Jeśli nie znasz adresu URL serwera, uruchom to polecenie w Cloud Shell:

    gcloud app browse
    

    Wynik: serwer tagowania został skonfigurowany i zaopatrzony w konfiguracjętesting. Możesz teraz przetestować tagowanie po stronie serwera.

Początkowa konfiguracja serwera (testing)

Konfiguracja testowania jest odpowiednia do poznawania usługi przez wysyłanie niewielkich ilości ruchu testowego i korzystanie z funkcji podglądu w Menedżerze tagów. Ta konfiguracja to klasa instancji F1 App Engine w środowisku standardowym. 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 procesorem wirtualnym, 0, 5 GB pamięci i 10 GB miejsca na dysku w środowisku elastycznym.

Więcej informacji o rozliczeniach App Engine i konfigurowaniu alertów dotyczących płatności znajdziesz w artykule Zarządzanie kosztami App Engine. Zdecydowanie zalecamy skonfigurowanie alertu rozliczeniowego.

Zalecamy uruchomienie co najmniej 3 serwerów, aby zmniejszyć ryzyko utraty danych w przypadku awarii serwera. Możesz jednak uruchomić mniejszą (lub większą) liczbę serwerów. Oczekujemy, że automatyczne skalowanie 3–6 serwerów (domyślnie) obsłuży 50–200 żądań na sekundę. Wydajność zależy od liczby tagów i ich funkcji.

Aby skonfigurować serwer tagowania:

  1. Otwórz Cloud Shell w Google Cloud Platform.
  2. Ustaw projekt Cloud Platform w Cloud Shell. Zastąp project ID identyfikatorem projektu GCP, który został zapisany wcześniej:
    gcloud config set project project ID
  3. Aby ponownie skonfigurować serwer tagowania na potrzeby środowiska produkcyjnego, uruchom poniższy skrypt konfiguracji. Wykonaj te czynności:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Zmień typ wdrożenia na production.
    2. Skonfiguruj dodatkowe serwery do obsługi ruchu produkcyjnego. Zalecamy co najmniej 3 serwery.

Opcjonalnie: wyłączanie logowania

Logowanie żądań

Domyślnie App Engine rejestruje informacje o każdym otrzymanym żądaniu (np.ścieżkę żądania, parametry zapytania itp.). Jeśli serwer tagowania obsługuje wiele żądań miesięcznie (np. ponad milion), te wiadomości w logu mogą generować znaczne opłaty za logowanie. Aby zmniejszyć lub wyeliminować opłaty za rejestrowanie, zalecamy wyłączenie rejestrowania żądań App Engine.

Aby wyłączyć rejestrowanie żądań App Engine:

  1. Na platformie Google Cloud otwórz Router dzienników. Upewnij się, że jesteś w projekcie, który pasuje do identyfikatora kontenera:
    zrzut ekranu selektora projektu GCP pokazujący przykładowy identyfikator kontenera Menedżera tagów;
  2. W wierszu Typ: Zasobnik Cloud Logging, Nazwa: _Default kliknij rozszerzone menu, a następnie Edytuj ujście.
  3. W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
  4. W sekcji Wybierz logi do uwzględnienia w ujściu dodaj nowy wiersz. Wpisz w istniejącym filtrze uwzględniającym tę regułę:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Aby wyłączyć rejestrowanie z poziomu modułu równoważenia obciążenia, dodaj nowy wiersz i wpisz w istniejącym filtrze uwzględniania tę regułę:

    NOT LOG_ID("requests")
    
  6. Aby zastosować zmiany, kliknij Zaktualizuj ujście. Żądania App Engine nie będą już rejestrowane.

  7. Sprawdź, czy w logach Eksploratora logów nie pojawiają się nowe żądania.

Logowanie w konsoli

Serwer tagowania, klienci lub tagi w kontenerze mogą rejestrować w konsoli komunikaty, za które mogą być naliczane opłaty za logowanie. Aby zmniejszyć lub wyeliminować opłaty za logowanie, możesz wyłączyć niechciane komunikaty konsoli.

Identyfikowanie niechcianych logów konsoli:

  1. W GCP otwórz eksplorator logów.
  2. Wyszukaj niechciane wiadomości dziennika pochodzące z tagów. Przykład:

    Tag może wysyłać te 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 dziennika:zrzut ekranu Eksploratora logów GCP z przykładowymi logami;

Aby wyłączyć komunikat logu w konsoli:

  1. Na platformie Google Cloud otwórz Router dzienników. Upewnij się, że jesteś w projekcie, który pasuje do identyfikatora kontenera:
    zrzut ekranu selektora projektu GCP pokazujący przykładowy identyfikator kontenera Menedżera tagów;
  2. W wierszu Typ: Zasobnik Cloud Logging, Nazwa: _Default kliknij rozszerzone menu, a następnie Edytuj ujście.
  3. W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
  4. W sekcji Wybierz logi do uwzględnienia w ujściu dodaj nowy wiersz. Wpisz w istniejącym filtrze uwzględniającym tę regułę:

    NOT textPayload:"Custom message:"
    

    W przypadku logów konsoli zastąp Custom message:tekst podciągiem z logu konsoli, który chcesz wyłączyć. Aby uzyskać bardziej złożone filtry, użyj języka zapytań usługi Logging.

  5. Aby zastosować zmiany, kliknij Zaktualizuj ujście. Dopasowana wiadomość logToConsole powinna zostać wykluczona z logowania.

  6. Sprawdź, czy w eksploratorze logów nie pojawiają się nowe komunikaty logu konsoli.

3. Mapowanie wdrożenia na domenę niestandardową

Domyślne wdrożenie tagowania po stronie serwera jest hostowane w domenie App Engine. Zalecamy zmodyfikowanie wdrożenia, aby używać subdomeny witryny.

Mapowanie subdomeny witryny na serwer tagowania

4. Dodawanie adresu URL serwera do Menedżera tagów Google

Teraz, gdy masz już serwer, musisz się upewnić, że Menedżer tagów Google wie, że ma go używać.

  1. Otwórz Menedżera tagów Google.

  2. Kliknij kontener serwera, który chcesz wskazać jako serwer tagowania.

  3. Otwórz ustawienia kontenera serwera na karcie Administracja > Ustawienia kontenera.

  4. Kliknij Dodaj URL i wklej adres URL serwera.

  5. Zapisz i wróć do obszaru roboczego.

5. Weryfikacja

Po skonfigurowaniu serwera tagowania sprawdź, czy działa on zgodnie z oczekiwaniami.

Weryfikacja interfejsu

W obszarze roboczym Menedżera tagów kliknij przycisk Podgląd. Jeśli strona podglądu się wczyta, wszystko jest skonfigurowane prawidłowo.

Weryfikacja interfejsu API

Możesz też sprawdzić, czy serwer odpowiada na kontrole stanu, korzystając z jego interfejsu API:

  1. Skopiuj URL kontenera serwera z sekcji Administracja > Ustawienia kontenerów.
  2. Otwórz nową kartę przeglądarki.
  3. Wklej adres URL i dopisz do ścieżki znak /healthy. Przykład: https://www.example.com/metrics/healthy
  4. Jeśli usługa działa, na stronie powinien pojawić się tekst ok.

Jeśli brakuje żądań dotyczących konkretnego produktu, sprawdź, czy zdarzenie jest wywoływane. Polecenie config inicjuje produkt, ale dane są zwykle przesyłane tylko wtedy, gdy wywoływane jest polecenie event.

Więcej informacji o sprawdzonych metodach weryfikacji tagowania po stronie serwera znajdziesz w artykule Konfigurowanie domeny niestandardowej.

Wyświetlanie podglądu wielu adresów URL

Jeśli masz zmapowanych wiele domen na jeden serwer tagowania, upewnij się, że każdy adres URL jest dodany do ustawień kontenera.

Jeśli podasz kilka adresów URL, wszystkie ścieżki (ciąg znaków po nazwie domeny) muszą być dopasowane.

Prace 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 kilka adresów URL, obok przycisku Podgląd pojawi się ikona, która umożliwia wybranie adresu URL do wyświetlenia w podglądzie.

Aktualizowanie wersji serwera tagowania

Nowe aktualizacje serwera tagowania zawierają poprawki luk w zabezpieczeniach i nowe funkcje. Zalecamy aktualizowanie serwera tagowania co najmniej w przypadku każdej głównej wersji (np. przejście z wersji 1.x.x na 2.x.x), gdy Menedżer tagów wyświetli powiadomienie o konieczności aktualizacji.

Aby zaktualizować serwer tagowania, ponownie uruchom skrypt konfiguracji, używając tych samych ustawień co wcześniej. Domyślnie są tu widoczne aktualne ustawienia.

Aby zaktualizować serwer tagowania:

  1. Otwórz Cloud Shell w Google Cloud Platform.
  2. Ustaw projekt Cloud Platform w Cloud Shell. Zastąp project ID identyfikatorem projektu GCP, który został zapisany wcześniej:
    gcloud config set project project ID
  3. Uruchom skrypt konfiguracji, używając tych samych ustawień co wcześniej. Domyślnie są tu widoczne dotychczasowe ustawienia.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Aby sprawdzić, czy aktualizacja się powiodła:

  1. W kontenerze serwera kliknij przycisk Podgląd, aby rozpocząć nową sesję debugowania i wysłać żądanie na oddzielnej karcie.
  2. W sekcji Podsumowanie kliknij kartę Konsola i sprawdź, czy nie ma 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 nawet przez dzień po pomyślnym zaktualizowaniu serwera. Na stronie podglądu będzie jednak wyświetlany aktualny komunikat o wersji serwera tagowania.

Rozwiązywanie problemów z przekroczeniem limitu czasu wdrożenia w środowisku produkcyjnym

Gdy uruchomisz skrypt konfiguracji, aby utworzyć lub ponownie skonfigurować serwer tagowania, skrypt może przekroczyć limit czasu. Może się tak zdarzyć z kilku powodów. Najczęstsze z nich to:

  1. Konta usługi mają nieprawidłowe uprawnienia – konta usługi Compute Engine i App Engine są odpowiedzialne za wdrażanie i utrzymywanie wdrożenia produkcyjnego. Domyślnie są one wstępnie skonfigurowane z odpowiednimi uprawnieniami. W niektórych przypadkach zasady organizacji mogą jednak powodować, że będą one nieprawidłowe.

    1. W konsoli Google Cloud na pasku nawigacyjnym po lewej stronie otwórz stronę Administracja.
    2. Znajdź konto usługi Compute Engine<project_number>-compute@developer.gserviceaccount.com i konto usługi App Engine<project_name>@appspot.gserviceaccount.com.
    3. Oba konta usługi muszą mieć przypisaną rolę Editor. Jeśli któreś z kont nie ma roli Editor, zaktualizuj rolę, klikając ikonę ołówka po prawej stronie konta, klikając menu istniejącej roli, przewijając w górę i klikając Projekt, a następnie Edytujący.
  2. Niewystarczający limit – wdrożenie produkcyjne wykorzystuje limit Compute Engine. Jeśli projekt nie ma wystarczającego limitu, wdrożenie może przekroczyć limit czasu podczas próby udostępnienia zasobów.

    1. Na pasku nawigacyjnym po lewej stronie konsoli Google Cloud otwórz stronę Uprawnienia i administracja, a potem na pasku nawigacyjnym po lewej stronie kliknij kartę Limity.
    2. U góry strony kliknij pole tekstowe Filtruj tabelę i wpisz Compute Engine API. Kliknij jedyny wynik.
    3. Sprawdź, czy wszystkie stany limitów są w zakresie limitu lub mają zielony znacznik wyboru.
    4. Znajdź i kliknij Procesory. Sprawdź, czy bieżące wykorzystanie plus liczba wdrażanych instancji nadal będzie poniżej limitu dla regionu wdrażania.