מדריך להגדרה ידנית

אפשר להשתמש בתהליך הקצאת המשאבים האוטומטי כדי לפרוס את שרת התיוג ב-Cloud Run בכמה קליקים בלבד. אם רוצים להקצות את שרת התיוג בסביבות אחרות, אפשר לעשות זאת באופן ידני. שרת התיוג הוא שרת Node.js בתוך קובץ אימג' של Docker.

כדי להקצות את שרת התיוג באופן ידני, צריך להקצות את האשכולות של תיוג בצד השרת (SST) ואת שרת ה-Preview בנפרד. אשכול ה-SST הוא נקודת הכניסה לכל הבקשות לשרת התיוג, והוא יטפל בבקשות כפי שמתואר במאמר מבוא לתיוג בצד השרת. שרת התצוגה המקדימה נדרש כדי להציג תצוגה מקדימה של מאגר תגים.

באיור 1 מוצגת הדוגמה לאינטראקציה של הנתונים בין שרתי התיוג לבין שרת התצוגה המקדימה.

תרשים של שרתי התיוג וזרימה של נתונים בשרת התצוגה המקדימה

איור 1: תרשים של שרתי התיוג ותצוגה מקדימה של זרימת הנתונים בשרת.

במדריך הזה נסביר איך:

  • הצגת כל ההגדרות הזמינות של קובץ האימג' ב-Docker.
  • (אופציונלי) הוספת פרטי הכניסה ל-BigQuery
  • הקצאה ידנית של שרת תצוגה מקדימה באמצעות תמונת Docker של SST.
  • הקצאה ידנית של אשכול SST באמצעות קובץ האימג' של SST ב-Docker.
  • ודא ששרת התצוגה המקדימה ואשכול ה-SST מוגדרים כראוי.
  • חשוב לעדכן את הגרסה של שרת התיוג אחרי הקצאת השרת.

כדי להריץ את פקודות Docker במדריך הזה, קודם צריך להתקין את Docker במחשב.

הצגת כל ההגדרות הזמינות של קובץ האימג' ב-Docker

תמונת Docker של שרת התיוג נמצאת בכתובת ה-URL הזו:

gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

שרת התיוג ושרת התצוגה המקדימה משתמשים באותו קובץ אימג' ב-Docker עם דגלים שונים. בקטע הזה נסביר איך לחפש את כל ההגדרות הזמינות שאפשר להשתמש בהן עם קובץ האימג' של Docker.

כדי לראות את כל ההגדרות הזמינות, מריצים את הפקודה הבאה באמצעות הכלי של שורת הפקודה של docker:

docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help

(אופציונלי) הוספת פרטי הכניסה ל-Google Cloud

כדי להשתמש ב-API של BigQuery או של Firestore מחוץ ל-Google Cloud, צריך לספק פרטי כניסה לחשבון שירות עם הרשאה לגשת למשאבים האלה.

  1. צריך לבצע את המדריך הזה כדי ליצור חשבון שירות עם התפקיד עורך הנתונים של BigQuery לגישה אל BigQuery או לתפקיד משתמש ב-Cloud Datastore כדי לגשת אל Firestore ולייצא את פרטי הכניסה שלו ל-JSON עם שם הקובץ local_service_account_key.json.
  2. מחברים את פרטי הכניסה בפורמט JSON בנפח אחסון שגלוי לתמונה. באמצעות docker run, אפשר לציין את -v local_service_account_key.json:/app/service_account_key.json כדי לטעון את פרטי הכניסה בתמונה.
  3. מכוונים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS לפרטי הכניסה.
  4. אפשר לציין את מזהה הפרויקט ב-Google Cloud במשתנה הסביבה GOOGLE_CLOUD_PROJECT כדי לאפשר לשרת התיוג לבחור את הפרויקט באופן משתמע.
  5. מפעילים את השרת. הפקודה הבאה מפעילה את שרת התיוג עם פרטי הכניסה:

    docker run -v local_service_account_key.json:/app/service_account_key.json \
    -p 8080:8080 \
    -e GOOGLE_APPLICATION_CREDENTIALS='/app/service_account_key.json' \
    -e GOOGLE_CLOUD_PROJECT='<your project id>' \
    -e CONTAINER_CONFIG='<config string>' \
    gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
    

בהתאם למערכת שבה שרת התיוג נפרס, יכול להיות שיהיו דרכים שונות לטעון את פרטי הכניסה. לדוגמה, Kubernetes ו-Docker Swarm מספקים מדריכים לניהול סודות. למידע נוסף, עיינו במדריך המערכת המתאים.

חשוב לפעול לפי השיטות המומלצות כדי להגן על פרטי הכניסה.

הקצאה ידנית של שרת תצוגה מקדימה

השרת לתצוגה מקדימה מאפשר לכם לראות תצוגה מקדימה של מאגר התגים בצד השרת. כדי להפעיל את שרת התצוגה המקדימה, מריצים את קובץ האימג' של Docker עם משתני הסביבה הבאים שמועברים לסביבת Docker.

ההגדרות הנדרשות

  • CONTAINER_CONFIG – מחרוזת ההגדרה של מאגר התגים בצד השרת. ב-Tag Manager, עוברים לסביבת העבודה של קונטיינר השרת ולוחצים על מזהה הקונטיינר בפינה השמאלית העליונה של הדף. לוחצים על Manually provision tagging server כדי למצוא את הערך של Container Config.

  • RUN_AS_PREVIEW_SERVER – מגדירים את הערך הזה כ-true כדי להקצות את השרת בתור שרת לתצוגה מקדימה.

דוגמה לשימוש בכלי שורת הפקודה של Docker

כדי להקצות שרת תצוגה מקדימה באופן מקומי, מפעילים את הפקודה הבאה:

docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e RUN_AS_PREVIEW_SERVER=true gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

אמורה להופיע תגובה עם קוד 200 מהבקשה ל-http://localhost:8080/healthz. לחלופין, אפשר להשתמש במשתנה הסביבה PORT כדי לשנות את היציאה.

שיטות מומלצות

  • צריך לפרוס בדיוק שרת תצוגה מקדימה אחד. לא מגדירים התאמה אוטומטית של עוצמת עיבוד מעבר למכונה אחת.
  • אחרי שמגדירים שרת לתצוגה מקדימה באמצעות Docker, מגדירים כתובת URL מסוג HTTPS שמפנה לשרת התצוגה המקדימה. הנתונים האלה נדרשים להגדרת האשכולות של SST.
  • הזמן הקצוב לתפוגה של מאזן העומסים או של ה-CDN צריך להיות ארוך מ-20 שניות, אחרת מצב התצוגה המקדימה לא יפעל כראוי.

הקצאה ידנית של אשכול תיוג בצד השרת

האשכולות של SST משמשים כנקודת הכניסה, מעבירים בקשות של תצוגה מקדימה לשרת התצוגה המקדימה ומטפלים בכל שאר הבקשות, כפי שמתואר במאמר מבוא לתיוג בצד השרת. כדי להקצות אשכול SST בכל סביבה שתומכת ב-Docker, משתמשים בהגדרות הנדרשות הבאות עם קובץ האימג' של שרת התיוג ב-Docker.

הגדרות נדרשות

  • CONTAINER_CONFIG - מחרוזת ההגדרה של מאגר התגים בצד השרת. ב-Tag Manager, עוברים לסביבת העבודה של קונטיינר השרת ולוחצים על מזהה הקונטיינר בפינה השמאלית העליונה של הדף. לוחצים על Manually provision tagging server כדי למצוא את הערך של Container Config.

  • PREVIEW_SERVER_URL – כתובת ה-URL מסוג HTTPS של שרת התצוגה המקדימה. צריך להגדיר את ההגדרה הזו רק לצורך הקצאת משאבים לשרת התיוג, ולא צריך להגדיר אותה לצורך הקצאת משאבים לשרת התצוגה המקדימה. בקטע שלמעלה מוסבר איך מגדירים את שרת התצוגה המקדימה.

דוגמה לשימוש בכלי שורת הפקודה של Docker

כדי להקצות שרת תיוג יחיד באופן מקומי, מריצים את הפקודה הבאה:

docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e PREVIEW_SERVER_URL='<HTTPS preview server url>' gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

אמורה להופיע תגובה 200 מהבקשה ל-http://localhost:8080/healthz. לחלופין, אפשר להשתמש במשתנה הסביבה PORT כדי לשנות את היציאה.

שיטות מומלצות

  • אפשר להקצות שרתי תיוג בצד השרת בתור שרת יחיד או כאשכול. מומלץ להקצות אותו כאשכול כדי לשפר את הזמינות, יכולת ההתאמה לעומס והביצועים. חשוב לשים לב שכשמקצים הרשאות כאשכול, צריך להגדיר לכל מכונה של שרת את אותם משתני סביבה CONTAINER_CONFIG ו-PREVIEW_SERVER_URL.
  • חשוב לארח את שרת התיוג באותו מקור (שיטה מומלצת) או בתור תת-דומיין של האתר הנוכחי. לדוגמה, אם האפליקציה שלכם משרתת תנועה באינטרנט בכתובת example.com, תוכלו להשתמש בנתיב כמו example.com/analytics בשרת התיוג. מידע נוסף על הגדרת דומיין בהתאמה אישית
  • אחרי שמגדירים אשכול SST באמצעות Docker, מגדירים כתובת URL מסוג HTTPS שמפנה לאשכול ה-SST.
  • חשוב להפעיל מחדש את השרתים מדי פעם כדי לוודא שהם כוללים את עדכוני הקוד העדכניים ביותר של SST. אם לא תעשו זאת, יכול להיות שהפונקציונליות החדשה של תכונות SST לא תהיה תואמת. אחת מהדרכים לדעת מתי צריך להפעיל מחדש את השרת היא להגדיר בדיקות פעילות, כפי שמוסבר בהמשך. כמו כן, חשוב לזכור שעדכונים שפורסמו בקונטיינר השרת עדיין יחולו בלי הפעלה מחדש.
  • אפשר להשתמש בנקודת הקצה הקיימת /healthz (למשל https://analytics.example.com/healthz) בשרתי התיוג כדי להגדיר בדיקות פעילות. תגובה לא תקינה מציינת שצריך להפעיל מחדש את השרת.
  • הקונטיינר של Docker כולל פקודת בדיקת תקינות שמוגדרת כברירת מחדל – HEALTHCHECK CMD ["/nodejs/bin/node", "/app/health_checker_bin.js"] – שמריצה שאילתות לנקודת הקצה /healthz מדי פעם. אם אתם תלויים בבדיקת התקינות של Docker, תוכלו לשנות את ההגדרות לפי ההוראות של Docker.
  • אם שרת התצוגה המקדימה ושרת התיוג נמצאים באותו מקור, צריך לארח את שרת התצוגה המקדימה בנתיב שונה מזה של שרת התיוג. מציינים את PREVIEW_SERVER_URL, כולל הנתיב.
  • השרתים שהוקצתה להם הקצאה צריכים לכלול עד vCPU אחד. לא נעשה שימוש ב-vCPUs נוספים, והם משפיעים לרעה על התאמת הקיבולת האוטומטית.

אימות

הגדרת כתובת ה-URL של מאגר התגים בצד השרת

ב-Tag Manager, עוברים למאגר התגים בצד השרת. בקטע Admin > Container Settings, מזינים את כתובת ה-URL של שרת התיוג בשדה ServerContainer URL (כתובת URL של מאגר תגים) ולוחצים על Save.

אימות באמצעות מצב תצוגה מקדימה

בסביבת העבודה של Tag Manager, לוחצים על Preview (תצוגה מקדימה) כדי להציג תצוגה מקדימה של המאגר, ובודקים שדף התצוגה המקדימה נטען. בכרטיסייה אחרת בדפדפן, עוברים לנתיב כלשהו בכתובת ה-URL של מאגר התגים בצד השרת. אם הבקשה שנשלחה מופיעה בדף התצוגה המקדימה, סימן שהכול מוגדר כמו שצריך.

אם מיפיתם מספר תת-דומיינים לשרת תיוג יחיד ואתם רוצים לצפות בתצוגה מקדימה בכל תת-דומיין, אתם צריכים להוסיף עוד כתובות URL של מאגרי שרת בקטע Admin > Container Settings (ניהול > הגדרות קונטיינר). אם מציינים כמה כתובות URL, כל נתיבי כתובות ה-URL חייבים להיות זהים (המחרוזת של המידע שמופיעה אחרי שם הדומיין). לדוגמה, אפשר להציג תצוגה מקדימה ב-example.com/abc וב-example2.com/abc, אבל אי אפשר להציג תצוגה מקדימה ב-example.com/abc וב-example2.com/def. אם מוסיפים כמה כתובות URL, יופיע סמל לצד הלחצן תצוגה מקדימה שמאפשר לבחור את כתובת ה-URL שבה רוצים להציג את התצוגה המקדימה.

עדכון הגרסה של שרת התיוג

קובץ האימג' gtm-cloud-image מכיל את Node.js ואת הספריות הנדרשות לפעולה של שרת התיוג. קובץ האימג' של Docker מתעדכן מדי פעם עם תיקוני אבטחה ותכונות חדשות. מומלץ לעדכן לפחות את שרת התיוג בכל גרסה ראשית (למשל, שדרוג מגרסה 1.x.x ל-2.x.x).

כדי לעדכן את קובץ האימג' של Docker:

  1. אחזור של גרסת התמונה הנוכחית בכתובת gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable.
  2. פורסים את השרת עם אותן הגדרות כמו בפריסה הקודמת.
  3. מעדכנים את שרת התצוגה המקדימה היחיד ואת כל שרתי התיוג באשכול.
  4. משביתים שרתים ישנים.

כדי לוודא שהעדכון בוצע בהצלחה:

  1. במאגר השרת, לוחצים על הלחצן Preview כדי להתחיל סשן ניפוי באגים חדש ולשלוח בקשה בכרטיסייה נפרדת.
  2. ב-Summary, בוחרים בכרטיסייה Console ומוודאים שאין הודעות שמבקשות לעדכן את שרת התיוג.

יכול להיות שמערכת Tag Manager תציג הודעות עם בקשה לעדכן את שרת התיוג עד יום אחד אחרי שהשרת עודכן בהצלחה. עם זאת, בדף התצוגה המקדימה תוצג הודעה עדכנית לגבי גרסת שרת התיוג.