คุณใช้ขั้นตอนการจัดสรรอัตโนมัติเพื่อทำให้เซิร์ฟเวอร์การติดแท็กใช้งานได้กับ 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
หากต้องการดูการตั้งค่าที่ใช้ได้ทั้งหมด ให้เรียกใช้คำสั่งต่อไปนี้โดยใช้เครื่องมือบรรทัดคำสั่ง docker
docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help
(ไม่บังคับ) ใส่ข้อมูลเข้าสู่ระบบ Google Cloud
หากต้องการใช้ BigQuery
หรือ Firestore
API นอก Google Cloud คุณต้องระบุข้อมูลเข้าสู่ระบบของบัญชีบริการที่ได้รับอนุญาตให้เข้าถึงทรัพยากรเหล่านั้น
- ทำตามคำแนะนำนี้เพื่อสร้างบัญชีบริการที่มีบทบาทผู้แก้ไขข้อมูล BigQuery สำหรับการเข้าถึง
BigQuery
หรือบทบาทผู้ใช้ Cloud Datastore สำหรับการเข้าถึงFirestore
และส่งออกข้อมูลเข้าสู่ระบบ JSON ด้วยชื่อไฟล์local_service_account_key.json
- ติดตั้งข้อมูลเข้าสู่ระบบ JSON ในวอลุ่มที่รูปภาพเข้าถึงได้ เมื่อใช้
docker run
คุณจะระบุ-v local_service_account_key.json:/app/service_account_key.json
เพื่อต่อเชื่อมข้อมูลเข้าสู่ระบบในรูปภาพได้ - ชี้ตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
ไปยังข้อมูลเข้าสู่ระบบ - (ไม่บังคับ) ระบุรหัสโปรเจ็กต์ Google Cloud ในตัวแปรสภาพแวดล้อม
GOOGLE_CLOUD_PROJECT
เพื่อให้เซิร์ฟเวอร์การติดแท็กเลือกโปรเจ็กต์โดยปริยาย เรียกใช้เซิร์ฟเวอร์ คําสั่งต่อไปนี้จะเรียกใช้เซิร์ฟเวอร์การติดแท็กพร้อมด้วยข้อมูลเข้าสู่ระบบ
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 ให้ไปที่พื้นที่ทํางานของคอนเทนเนอร์เซิร์ฟเวอร์ แล้วคลิกรหัสคอนเทนเนอร์ที่ด้านขวาบนของหน้า คลิกจัดสรรเซิร์ฟเวอร์ติดแท็กด้วยตนเองเพื่อค้นหาค่า Container ConfigRUN_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 แล้ว ให้กำหนดค่า URL ของ HTTPS ให้ชี้ไปยังเซิร์ฟเวอร์เวอร์ชันตัวอย่าง ซึ่งจําเป็นสําหรับการตั้งค่าคลัสเตอร์ SST
- ตัวจัดสรรภาระงานหรือ CDN ของคุณต้องมีการหมดเวลานานกว่า 20 วินาที มิฉะนั้นโหมดแสดงตัวอย่างจะทำงานไม่ถูกต้อง
จัดสรรคลัสเตอร์การติดแท็กฝั่งเซิร์ฟเวอร์ด้วยตนเอง
คลัสเตอร์ SST ทำหน้าที่เป็นจุดแรกเข้า พร็อกซีคำขอตัวอย่างไปยังเซิร์ฟเวอร์ตัวอย่าง และจัดการคำขออื่นๆ ทั้งหมดตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับการติดแท็กฝั่งเซิร์ฟเวอร์ ใช้การตั้งค่าที่จําเป็นต่อไปนี้กับอิมเมจ Docker ของเซิร์ฟเวอร์การติดแท็กเพื่อจัดสรรคลัสเตอร์ SST ในสภาพแวดล้อมที่รองรับ Docker
การตั้งค่าที่จำเป็น
CONTAINER_CONFIG
- สตริงการกําหนดค่าสําหรับคอนเทนเนอร์เซิร์ฟเวอร์ ใน Tag Manager ให้ไปที่พื้นที่ทํางานของคอนเทนเนอร์เซิร์ฟเวอร์ แล้วคลิกรหัสคอนเทนเนอร์ที่ด้านขวาบนของหน้า คลิกจัดสรรเซิร์ฟเวอร์ติดแท็กด้วยตนเองเพื่อค้นหาค่า Container ConfigPREVIEW_SERVER_URL
- URL HTTPS สำหรับเซิร์ฟเวอร์เวอร์ชันตัวอย่าง การตั้งค่านี้ควรตั้งสำหรับการจัดสรรเซิร์ฟเวอร์การติดแท็กเท่านั้น และไม่จำเป็นสำหรับการจัดสรรเซิร์ฟเวอร์ตัวอย่าง ดูคำแนะนำในการตั้งค่าเซิร์ฟเวอร์เวอร์ชันตัวอย่างได้ที่ส่วนด้านบน
ตัวอย่างการใช้เครื่องมือบรรทัดคำสั่ง Docker
หากต้องการจัดสรรเซิร์ฟเวอร์การติดแท็ก 1 รายการภายในเครื่อง ให้เรียกใช้คำสั่งต่อไปนี้
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 ไม่เกิน 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
- เรียกข้อมูลเวอร์ชันรูปภาพปัจจุบันที่
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
- ติดตั้งใช้งานเซิร์ฟเวอร์ด้วยการตั้งค่าเดียวกับการติดตั้งใช้งานครั้งก่อน
- อัปเดตเซิร์ฟเวอร์การแสดงตัวอย่างเดียวและเซิร์ฟเวอร์การติดแท็กทั้งหมดในคลัสเตอร์
- ปิดเซิร์ฟเวอร์เก่า
วิธียืนยันว่าการอัปเดตสำเร็จ
- ในคอนเทนเนอร์เซิร์ฟเวอร์ ให้คลิกปุ่มแสดงตัวอย่างเพื่อเริ่มเซสชันแก้ไขข้อบกพร่องใหม่และส่งคําขอในแท็บแยกต่างหาก
- ในสรุป ให้เลือกแท็บคอนโซล และตรวจสอบว่าไม่มีข้อความขอให้คุณอัปเดตเซิร์ฟเวอร์การติดแท็ก
Tag Manager อาจแสดงข้อความขอให้คุณอัปเดตเซิร์ฟเวอร์การติดแท็กเป็นเวลาสูงสุด 1 วันหลังจากที่อัปเดตเซิร์ฟเวอร์สําเร็จ อย่างไรก็ตาม หน้าตัวอย่างจะแสดงข้อความล่าสุดเกี่ยวกับเวอร์ชันเซิร์ฟเวอร์การติดแท็ก