Konfigurowanie tagowania po stronie serwera za pomocą App Engine

Z tego przewodnika dowiesz się, jak:

  • Udostępnij serwer tagowania w Google Cloud Platform (GCP) App Engine.
  • Zaktualizuj serwer tagowania, aby obsługiwał ruch na żywo.
  • Zwiększ lub zmniejsz liczbę serwerów, na których działa kontener Menedżera tagów Google.
  • Po skonfigurowaniu serwera aktualizuj jego wersję.

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 takiego konta, utwórz konto rozliczeniowe GCP (wymaga to 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. Udostępnij serwer

Aby utworzyć nowy serwer tagowania na instancji App Engine, wykonaj te czynności:

  • Tworzenie nowego kontenera serwera w Menedżerze tagów
  • Tworzenie nowego projektu Google Cloud (GCP)
  • Konfigurowanie 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 menu > Utwórz kontener.

  3. Utwórz nowy kontener serwera.

  4. Kliknij przycisk opcji „Skonfiguruj serwer tagowania samodzielnie”. Zwróć uwagę na konfigurację kontenera. Potrzebujesz go do zaprovisionowania serwera.

Utwórz nowy projekt GCP

Aby utworzyć nowy projekt GCP dla serwera tagowania:

  1. Otwórz konsolę Google Cloud.

  2. Utwórz nowy projekt GCP.

  3. Nazwij projekt. Ze względów praktycznych zalecamy użycie identyfikatora kontenera. Ta nazwa jest używana tylko w GCP.

  4. Zanotuj identyfikator projektu GCP, ponieważ będziesz go potrzebować do utworzenia serwera tagowania.

Konfigurowanie nowego serwera tagowania

Aby utworzyć serwer tagowania:

  1. Otwórz Cloud Shell.

  2. Skonfiguruj projekt GCP w Cloud Shell. Zastąp project ID identyfikatorem projektu GCP zapisanym 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 w Cloud Shell to polecenie:

    gcloud app browse
    

    Wynik: skonfigurowano serwer tagowania i został on udostępniony z konfiguracją testing. Możesz teraz przetestować tagowanie po stronie serwera.

Początkowa konfiguracja serwera (testing)

Konfiguracja testów jest odpowiednia do testowania usługi przez wysyłanie niewielkich ilości testowego ruchu i używanie funkcji podglądu w Menedżerze tagów. Ta konfiguracja to klasa instancji F1 App Engine w środowisku Standard, 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 10 GB dysku w środowisku elastycznym.

Aby dowiedzieć się więcej o płatnościach za App Engine i o konfigurowaniu alertów dotyczących płatności, przeczytaj artykuł Zarządzanie kosztami App Engine. Zalecamy skonfigurowanie alertu dotyczącego rozliczeń.

Zalecamy uruchomienie co najmniej 3 serwerów, aby zmniejszyć ryzyko utraty danych w przypadku awarii serwera. Możesz jednak uruchomić mniej (lub więcej) serwerów. Oczekujemy, że autoskalowanie od 3 do 6 serwerów (domyślnie) będzie obsługiwać 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 zapisanym wcześniej:
    gcloud config set project project ID
  3. Aby skonfigurować serwer tagowania na potrzeby środowiska produkcyjnego, uruchom podany niżej 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łącz logowanie

Logowanie żądań

Domyślnie App Engine rejestruje informacje o każdym otrzymanym żądaniu (np.ścieżkę żądania, parametry zapytania itp.). Jeśli Twój serwer tagowania obsługuje dużo żądań miesięcznie (np. ponad 1 mln), te komunikaty logowania 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ć rejestrowanie żądań App Engine:

  1. Na platformie Google Cloud otwórz Router logów. Upewnij się, że jesteś w projekcie, który odpowiada identyfikatorowi kontenera:
    Zrzut ekranu z selektorem projektu GCP pokazujący przykładowy identyfikator kontenera Menedżera tagów
  2. W polu Typ: Zasobnik Cloud Logging, Nazwa: _Default, wybierz rozszerzone menu, a następnie kliknij 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 nową linię. 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")
    
  5. Aby wyłączyć również rejestrowanie z równoważnika obciążenia, dodaj nową linię i wpisz tę regułę do istniejącego filtra uwzględniania:

    NOT LOG_ID("requests")
    
  6. Aby zastosować zmiany, kliknij Zaktualizuj ujście. Żądania App Engine zostaną wykluczone z rejestrowania.

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

Logowanie w konsoli

Serwer tagowania, klienty lub tagi w kontenerze może rejestrować w konsoli wiadomości, które mogą powodować opłaty za rejestrowanie. Aby zmniejszyć lub wyeliminować opłaty za logowanie, możesz wyłączyć niechciane komunikaty logów konsoli.

Wykrywanie niechcianych logów konsoli:

  1. W GCP otwórz Eksplorator logów.
  2. Wyszukaj niechciane komunikaty logowania pochodzące 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()
    

    Odpowiednie komunikaty dziennika znajdziesz w polu textPayload:
    Zrzut ekranu eksploratora logów GCP z przykładowymi logami

Aby wyłączyć komunikat z dziennika konsoli:

  1. Na platformie Google Cloud otwórz router logów. Upewnij się, że jesteś w projekcie, który odpowiada identyfikatorowi kontenera:
    Zrzut ekranu z selektorem projektu GCP pokazujący przykładowy identyfikator kontenera Menedżera tagów
  2. W polu Typ: Zbiornik Cloud Logging, Nazwa: _Domyślny wybierz menu przepełnienia, a potem kliknij Edytuj odbiornik.
  3. W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
  4. W sekcji Wybierz logi do uwzględnienia w ujściu dodaj nową linię. Dodaj do istniejącego filtra uwzględniającego tę regułę:

    NOT textPayload:"Custom message:"
    

    W przypadku logów konsoli zastąp tekst Custom message: podciągiem znaków z logu konsoli, który chcesz wyłączyć. Aby tworzyć bardziej zaawansowane filtry, użyj języka zapytań dotyczących logów.

  5. Aby zastosować zmiany, kliknij Zaktualizuj ujście. Odpowiadająca wiadomość logToConsole powinna zostać wykluczona z rejestrowania.

  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.

Zmapuj subdomenę witryny na serwer tagowania.

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

Skoro masz już serwer, musisz się upewnić, że Menedżer tagów Google wie, że powinien z niego korzystać.

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

  2. Kliknij kontener serwera, który ma wskazywać na 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. W obszarze roboczym Menedżera tagów kliknij przycisk Podgląd. Jeśli strona podglądu się wczyta, oznacza to, że wszystko jest prawidłowo skonfigurowane.

Wyświetlanie podglądu wielu adresów URL

Jeśli masz zmapowane wiele domen na jeden serwer tagowania, sprawdź, czy każdy URL został dodany do ustawień kontenera.

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

Działanie 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 zobaczysz ikonę, która pozwala wybrać adres URL, którego podgląd chcesz wyświetlić.

Aktualizacja wersji serwera tagowania

Nowe aktualizacje serwerów tagowania zawierają poprawki w zabezpieczeniach i nowe funkcje. Zalecamy aktualizację serwera tagowania co najmniej w przypadku każdej nowej głównej wersji (np. z 1.x.x na 2.x.x), gdy Menedżer tagów powiadomi Cię o konieczności aktualizacji.

Aby zaktualizować serwer tagowania, ponownie uruchom skrypt konfiguracji, używając tych samych ustawień. Domyślnie są używane istniejące 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 zanotowanym wcześniej identyfikatorem projektu GCP:
    gcloud config set project project ID
  3. Uruchom skrypt konfiguracji, używając tych samych ustawień co poprzednio. Domyślnie używane są istniejące ustawienia.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Aby sprawdzić, czy aktualizacja została przeprowadzona prawidłowo:

  1. W kontenerze serwera kliknij przycisk Podgląd, aby rozpocząć nową sesję debugowania i wysłać żądanie na osobnej karcie.
  2. W sekcji Podsumowanie kliknij 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 okres do 1 dnia po jego zaktualizowaniu. Na stronie podglądu będzie się jednak wyświetlać aktualny komunikat o wersji serwera tagowania.

Rozwiązywanie problemów z czasem oczekiwania na wdrożenie w środowisku produkcyjnym

Gdy uruchamiasz skrypt konfiguracji, aby utworzyć lub zmienić konfigurację serwera tagowania, może wystąpić przekroczenie limitu czasu skryptu. Może się tak zdarzyć z kilku powodów. Oto 2 najczęstsze z nich:

  1. Konta usługi mają nieprawidłowe uprawnienia – za wdrożenie i obsługę wdrożenia produkcyjnego odpowiadają konta usługi Compute Engine i App Engine. Domyślnie są one wstępnie skonfigurowane z odpowiednimi uprawnieniami. W niektórych przypadkach jednak zasady organizacji mogą powodować, że te dane są nieprawidłowe.

    1. Otwórz stronę Administracja na pasku nawigacyjnym po lewej stronie w konsoli Google Cloud.
    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 żadne z kont nie ma roli Editor, zaktualizuj rolę, klikając ikonę ołówka po prawej stronie konta, klikając menu rozwijane bieżącej roli, przewijając w górę i klikając Projekt, a następnie Edytujący.
  2. Niewystarczający limit – wdrożenie produkcyjne zużywa limit Compute Engine. Jeśli projekt nie ma wystarczającej ilości limitu, wdrożenie może zostać przerwane podczas próby zasobu.

    1. Na lewym pasku nawigacyjnym konsoli Google Cloud otwórz stronę Administracja, a następnie na lewym pasku nawigacyjnym 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ą zieloną ikonę wyboru.
    4. Znajdź i kliknij Procesory. Sprawdź, czy bieżące wykorzystanie oraz liczba wdrażanych instancji nadal nie przekracza limitu dla regionu wdrażania.