Konfigurowanie tagowania po stronie serwera za pomocą App Engine

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

  1. Potrzebujesz konta GCP. Jeśli nie masz konta GCP, utwórz nowe.
  2. Musisz mieć konto rozliczeniowe GCP. Jeśli go nie masz, utwórz konto rozliczeniowe GCP (wymaga roli twórcy kont rozliczeniowych).
  3. 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

  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 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:

  1. Otwórz Google Cloud Console.

  2. Utwórz nowy projekt GCP.

  3. Nazwij projekt. Dla wygody zalecamy użycie identyfikatora kontenera. Ta nazwa jest używana tylko w GCP.

  4. Zapisz identyfikator projektu GCP, bo potrzebujesz go do utworzenia serwera tagowania.

Udostępnij nowy serwer tagowania

Aby utworzyć serwer tagowania:

  1. Otwórz Cloud Shell.

  2. Ustaw projekt GCP w Cloud Shell. Zastąp project ID zanotowanym wcześniej identyfikatorem projektu GCP:

    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. 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.

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:

  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. 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)"
    1. Zmień typ wdrożenia na production.
    2. Skonfiguruj dodatkowe serwery do obsługi ruchu produkcyjnego. Zalecamy używanie co najmniej 3 serwerów.

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:

  1. W Google Cloud Platform otwórz router logów. Sprawdź, czy jesteś w projekcie zgodnym z identyfikatorem Twojego kontenera:
    zrzut ekranu selektora projektów GCP z przykładowym identyfikatorem kontenera Menedżera tagów.
  2. W polu Typ: Zasobnik Cloud Logging, Nazwa: _Default, w wierszu _Default wybierz rozszerzone menu i kliknij Edytuj ujście.
  3. W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
  4. 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")
    
  5. 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")
    
  6. Zaktualizuj ujście, aby zastosować zmiany. Teraz żądania App Engine będą wykluczane z logowania.

  7. 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:

  1. W GCP otwórz eksplorator logów.
  2. 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:
    zrzut ekranu eksploratora logów GCP z przykładowymi logami.

Aby wyłączyć komunikat dziennika konsoli:

  1. W Google Cloud Platform otwórz router logów. Sprawdź, czy jesteś w projekcie zgodnym z identyfikatorem Twojego kontenera:
    zrzut ekranu selektora projektów GCP z przykładowym identyfikatorem kontenera Menedżera tagów.
  2. W polu Typ: Zasobnik Cloud Logging, Nazwa: _Default, w wierszu _Default wybierz rozszerzone menu i kliknij Edytuj ujście.
  3. W sekcji Miejsce docelowe ujścia wybierz zasobnik logów _Default.
  4. 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.

  5. Zaktualizuj ujście, aby zastosować zmiany. Pasujący komunikat logToConsole powinien być wykluczony z logowania.

  6. 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.

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

  2. Kliknij kontener serwera, który ma wskazywać Twój 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 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:

  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 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:

  1. W kontenerze serwera kliknij przycisk Podgląd, aby rozpocząć nową sesję debugowania i wysłać żądanie na osobnej karcie.
  2. 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:

  1. 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.

    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 tych kont nie ma przypisanej roli Editor, 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.
  2. 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.

    1. 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.
    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 mieszczą się w granicach lub są oznaczone zielonym znacznikiem wyboru.
    4. 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.