คู่มือการตั้งค่าด้วยตนเอง

ขั้นตอนการจัดสรรอัตโนมัติสามารถใช้เพื่อทำให้เซิร์ฟเวอร์การติดแท็กใช้งานได้ใน Cloud Run ได้ในไม่กี่คลิก หากต้องการจัดสรรเซิร์ฟเวอร์การติดแท็กในสภาพแวดล้อมอื่นๆ คุณจะจัดสรรด้วยตนเองได้ เซิร์ฟเวอร์การติดแท็กคือเซิร์ฟเวอร์ Node.js ภายในอิมเมจ Docker

การจัดสรรเซิร์ฟเวอร์การติดแท็กด้วยตนเองต้องมีการจัดสรรคลัสเตอร์การติดแท็กฝั่งเซิร์ฟเวอร์ (SST) และเซิร์ฟเวอร์ตัวอย่างแยกกัน คลัสเตอร์ SST เป็นจุดแรกเข้าสำหรับคำขอทั้งหมดไปยังเซิร์ฟเวอร์การติดแท็กและจะจัดการคำขอตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับการติดแท็กฝั่งเซิร์ฟเวอร์ ต้องมีเซิร์ฟเวอร์ตัวอย่าง สำหรับการแสดงตัวอย่างคอนเทนเนอร์

ดูรูปที่ 1 สำหรับภาพประกอบของการโต้ตอบระหว่างเซิร์ฟเวอร์การติดแท็กกับเซิร์ฟเวอร์แสดงตัวอย่าง

แผนภาพของเซิร์ฟเวอร์การติดแท็กและโฟลว์ข้อมูลของเซิร์ฟเวอร์ตัวอย่าง

รูปที่ 1: แผนภาพเซิร์ฟเวอร์การติดแท็กและโฟลว์ข้อมูลเซิร์ฟเวอร์ตัวอย่าง

คู่มือนี้จะอธิบายวิธี

  • ดูการตั้งค่าที่พร้อมใช้งานทั้งหมดสำหรับอิมเมจ Docker
  • (ไม่บังคับ) รวมข้อมูลเข้าสู่ระบบ BigQuery
  • จัดสรรเซิร์ฟเวอร์ตัวอย่างด้วยตนเองโดยใช้อิมเมจ Docker ของ SST
  • จัดสรรคลัสเตอร์ SST ด้วยตนเองโดยใช้อิมเมจ Docker ของ SST
  • ยืนยันว่าได้กำหนดค่าเซิร์ฟเวอร์ตัวอย่างและคลัสเตอร์ SST อย่างถูกต้องแล้ว
  • อัปเดตเวอร์ชันของเซิร์ฟเวอร์การติดแท็กให้เป็นปัจจุบันเสมอหลังจากจัดสรรเซิร์ฟเวอร์

หากต้องการเรียกใช้คำสั่ง Docker ในคู่มือนี้ คุณต้องติดตั้ง Docker ในคอมพิวเตอร์ก่อน

ดูการตั้งค่าที่พร้อมใช้งานทั้งหมดสำหรับอิมเมจ Docker

ดูอิมเมจ Docker ของเซิร์ฟเวอร์การติดแท็กได้ที่ URL นี้

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

เซิร์ฟเวอร์การติดแท็กและเซิร์ฟเวอร์ตัวอย่างใช้อิมเมจ Docker เดียวกันที่มีแฟล็กที่แตกต่างกัน ในส่วนนี้ เราจะแนะนำวิธีค้นหาการตั้งค่าทั้งหมดที่มีซึ่งอาจใช้กับอิมเมจ Docker ได้

หากต้องการดูการตั้งค่าที่ใช้ได้ทั้งหมด ให้เรียกใช้คำสั่งต่อไปนี้โดยใช้เครื่องมือบรรทัดคำสั่ง Dockker

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

(ไม่บังคับ) รวมข้อมูลเข้าสู่ระบบ Google Cloud

หากต้องการใช้ BigQuery หรือ Firestore API นอก 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 ให้ไปที่พื้นที่ทำงานของคอนเทนเนอร์เซิร์ฟเวอร์ แล้วคลิกรหัสคอนเทนเนอร์ที่ด้านบนขวาของหน้า คลิกจัดสรรเซิร์ฟเวอร์การติดแท็กด้วยตนเองเพื่อหาค่าการกำหนดค่าคอนเทนเนอร์

  • 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 เพื่อเปลี่ยนพอร์ต (ไม่บังคับ)

แนวทางปฏิบัติแนะนำ

  • คุณต้องทำให้เซิร์ฟเวอร์ตัวอย่างใช้งานได้ 1 รายการเท่านั้น อย่ากำหนดค่าการปรับขนาดอัตโนมัติเกิน 1 อินสแตนซ์
  • เมื่อตั้งค่าเซิร์ฟเวอร์ตัวอย่างโดยใช้ Docker แล้ว ให้กำหนดค่า HTTPS URL ให้ชี้ไปยังเซิร์ฟเวอร์ตัวอย่าง การดำเนินการนี้จำเป็นสำหรับการตั้งค่าคลัสเตอร์ SST
  • ตัวจัดสรรภาระงานหรือ CDN ต้องมีระยะหมดเวลาที่นานกว่า 20 วินาที มิฉะนั้นโหมดแสดงตัวอย่างจะทำงานไม่ถูกต้อง

จัดสรรคลัสเตอร์การติดแท็กฝั่งเซิร์ฟเวอร์ด้วยตนเอง

คลัสเตอร์ SST ทำหน้าที่เป็นจุดแรกเข้า ส่งคำขอดูตัวอย่างพร็อกซีไปยังเซิร์ฟเวอร์ตัวอย่าง และจัดการคำขออื่นๆ ทั้งหมดตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับการติดแท็กฝั่งเซิร์ฟเวอร์ ใช้การตั้งค่าที่จำเป็นต่อไปนี้กับอิมเมจ Docker ของเซิร์ฟเวอร์การติดแท็กเพื่อจัดสรรคลัสเตอร์ SST ในสภาพแวดล้อมที่รองรับ Docker

การตั้งค่าที่จำเป็น

  • CONTAINER_CONFIG - สตริงการกำหนดค่าของคอนเทนเนอร์เซิร์ฟเวอร์ ใน Tag Manager ให้ไปที่พื้นที่ทำงานของคอนเทนเนอร์เซิร์ฟเวอร์ แล้วคลิกรหัสคอนเทนเนอร์ที่ด้านบนขวาของหน้า คลิกจัดสรรเซิร์ฟเวอร์การติดแท็กด้วยตนเองเพื่อหาค่าการกำหนดค่าคอนเทนเนอร์

  • PREVIEW_SERVER_URL - HTTPS URL สำหรับเซิร์ฟเวอร์ตัวอย่าง คุณควรตั้งค่านี้สำหรับการจัดสรรเซิร์ฟเวอร์การติดแท็กเท่านั้นและไม่จำเป็นสำหรับการจัดสรรเซิร์ฟเวอร์แสดงตัวอย่าง ดูส่วนด้านบนสำหรับคำแนะนำเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์แสดงตัวอย่าง

ตัวอย่างการใช้เครื่องมือบรรทัดคำสั่ง 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 เดียวกัน
  • อย่าลืมชี้การนำคลัสเตอร์ SST ไปใช้งานกับโดเมนย่อยใหม่ในเว็บไซต์ซึ่งแยกจากโดเมนย่อยที่ให้บริการแอปพลิเคชัน เช่น หากแอปพลิเคชันแสดงการเข้าชมเว็บที่ example.com ให้ใช้โดเมนย่อย เช่น analytics.example.com สำหรับเซิร์ฟเวอร์การติดแท็ก
  • เมื่อตั้งค่าคลัสเตอร์ SST โดยใช้ Docker แล้ว ให้กำหนดค่า HTTPS URL ให้ชี้ไปยังคลัสเตอร์ 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 ไม่เกิน 1 รายการ ไม่ได้มีการใช้ vCPU เพิ่มเติมและส่งผลเสียต่อการปรับขนาดอัตโนมัติ

การตรวจสอบความถูกต้อง

กำหนดค่า URL ของคอนเทนเนอร์เซิร์ฟเวอร์

ไปที่คอนเทนเนอร์เซิร์ฟเวอร์ใน Tag Manager ในส่วนผู้ดูแลระบบ > การตั้งค่าคอนเทนเนอร์ ให้ใส่ URL ของเซิร์ฟเวอร์การติดแท็กลงในช่อง URL ของคอนเทนเนอร์เซิร์ฟเวอร์ แล้วคลิกบันทึก

ยืนยันผ่านโหมดแสดงตัวอย่าง

ในพื้นที่ทำงานของ Tag Manager ให้แสดงตัวอย่างคอนเทนเนอร์โดยคลิกแสดงตัวอย่าง แล้วดูว่าหน้าตัวอย่างจะโหลดขึ้นมา ในแท็บเบราว์เซอร์อื่น ให้ไปยังเส้นทางใดก็ได้บน URL ของคอนเทนเนอร์เซิร์ฟเวอร์ หากหน้าตัวอย่างแสดงคำขอที่ส่งเข้ามา แสดงว่าการตั้งค่าทุกอย่างถูกต้อง

หากคุณแมปโดเมนย่อยหลายรายการกับเซิร์ฟเวอร์การติดแท็กเดียวและต้องการดูตัวอย่างในโดเมนย่อยแต่ละรายการ ให้เพิ่ม URL ของคอนเทนเนอร์เซิร์ฟเวอร์เพิ่มเติมในส่วนผู้ดูแลระบบ > การตั้งค่าคอนเทนเนอร์ หากระบุ 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. ในคอนเทนเนอร์เซิร์ฟเวอร์ ให้คลิกปุ่มแสดงตัวอย่างเพื่อเริ่มเซสชันแก้ไขข้อบกพร่องใหม่และส่งคำขอในแท็บแยกต่างหาก
  2. ในสรุป ให้เลือกแท็บคอนโซลและตรวจสอบว่าไม่มีข้อความที่ขอให้คุณอัปเดตเซิร์ฟเวอร์การติดแท็ก

เครื่องจัดการแท็กอาจแสดงข้อความที่ขอให้คุณอัปเดตเซิร์ฟเวอร์การติดแท็กภายใน 1 วันหลังจากที่อัปเดตเซิร์ฟเวอร์เสร็จเรียบร้อยแล้ว อย่างไรก็ตาม หน้าตัวอย่างจะแสดงข้อความที่อัปเดตล่าสุดเกี่ยวกับเวอร์ชันของเซิร์ฟเวอร์การติดแท็ก