การทำให้ใช้งานได้

หน้านี้อธิบายวิธีติดตั้งใช้งานเครื่องมือสร้างการกำหนดค่าเมตริก (MCG)

เข้าถึงซอร์สโค้ด

ซอร์สโค้ดสำหรับ MCG โฮสต์อยู่ใน GitHub ที่ aaos-sdv-telemetry-mcg คุณสามารถเรียกใช้ MCG ในเครื่องเพื่อการพัฒนาและการทดสอบ หรือติดตั้งใช้งานในสภาพแวดล้อมระบบคลาวด์เพื่อให้ทีมเข้าถึงได้

เรียกใช้ในเครื่อง

หากต้องการเรียกใช้ MCG จากไดเรกทอรีต้นทางสำหรับการพัฒนาและการทดสอบในเครื่อง ให้ใช้ Bazel ต้องติดตั้ง Bazel คุณต้องเปิดใช้การแคชหน่วยความจำโดยตั้งค่า MCG_LOCALCACHE=true เมื่อเรียกใช้ในเครื่อง ซึ่งรองรับการจัดเก็บแคตตาล็อกสัญญาณของยานพาหนะ หากต้องการสร้างและเรียกใช้บริการในเครื่อง ให้ใช้คำสั่งต่อไปนี้จากไดเรกทอรีต้นทาง

# Build and run on default port 8005
MCG_LOCALCACHE=true bazel run //:mcg

# Or, to change the port, use:
MCG_LOCALCACHE=true bazel run //:mcg -- --listen :9000

ทำให้ใช้งานได้กับ Google Cloud

ฐานของโค้ด MCG มีไฟล์ Terraform และ Google Cloud Build เพื่อติดตั้งใช้งาน MCG ใน Google Cloud เป็นบริการ Google Cloud Run ส่วนต่อไปนี้จะแนะนำคุณตลอดกระบวนการติดตั้งใช้งาน ซึ่งรวมถึงการสร้างไฟล์ตัวแปร การติดตั้งใช้งานโครงสร้างพื้นฐาน การสร้างและการติดตั้งใช้งานแอปพลิเคชัน ตลอดจนการให้สิทธิ์เข้าถึงและการยืนยันการติดตั้งใช้งาน

เนื่องจาก Cloud Run เป็นแพลตฟอร์มแบบ Serverless จึงช่วยประหยัดทรัพยากรด้วยการเรียกใช้คอนเทนเนอร์เมื่อประมวลผลคำขอเท่านั้น แทนที่จะเปิดเซิร์ฟเวอร์ไว้ตลอด 24 ชั่วโมงทุกวัน ซึ่งหมายความว่าข้อมูลในหน่วยความจำจะสูญหายเมื่ออินสแตนซ์คอนเทนเนอร์ปิดลงระหว่างคำขอ ดังนั้นจึงต้องใช้ Redis เพื่อจัดเตรียมพื้นที่เก็บข้อมูลถาวรสำหรับข้อมูลแคตตาล็อกในการเรียกใช้บริการต่างๆ แนวทางนี้ช่วยให้การติดตั้งใช้งานที่ปรับขนาดได้เหมาะสำหรับการใช้งานของทีมหรือการใช้งานจริง

สิ่งที่ต้องมีก่อน

ก่อนเริ่มการติดตั้งใช้งานใน Google Cloud ให้ตรวจสอบว่าคุณมีข้อกำหนดเบื้องต้นต่อไปนี้

  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินและมีสิทธิ์เพียงพอในการจัดสรรทรัพยากรและบทบาท IAM
  • ติดตั้ง Terraform (v1.0.0 ขึ้นไป) แล้ว
  • ติดตั้งและตรวจสอบสิทธิ์ Google Cloud CLI (gcloud) แล้ว

โครงสร้างไฟล์

การติดตั้งใช้งานใน Google Cloud เกี่ยวข้องกับการเรียกใช้คำสั่ง Terraform จากไดเรกทอรีย่อย infrastructure/ และคำสั่ง Cloud Build จากรูทที่เก็บ ไฟล์และไดเรกทอรีหลักที่คุณโต้ตอบด้วยมีดังนี้

repository-root/
├── cloudbuild.yaml
└── infrastructure/
    └── terraform.tfvars  <-- you create this file

สร้างไฟล์ตัวแปร Terraform

ในไดเรกทอรี infrastructure/ ให้สร้างไฟล์ชื่อ terraform.tfvars เพื่อระบุค่าสำหรับตัวแปรที่กำหนดไว้ใน variables.tf และปรับแต่งการติดตั้งใช้งาน คุณต้องกำหนดค่าสำหรับ project_id และ region ในไฟล์นี้ ส่วนตัวแปรอื่นๆ ทั้งหมดไม่บังคับ เพิ่มรายการต่อไปนี้ไปยัง terraform.tfvars

project_id        = "your-gcp-project-id"
region            = "your-gcp-region" # For example, us-central1 or europe-west1

ดูตัวแปรทั้งหมดที่มีและค่าเริ่มต้นได้ที่ variables.tf คุณสามารถลบล้างค่าเริ่มต้นได้โดยตั้งค่าใน terraform.tfvars

ติดตั้งใช้งานโครงสร้างพื้นฐาน

หลังจากสร้าง terraform.tfvars แล้ว คุณจะเริ่มต้นและใช้การกำหนดค่า Terraform ได้ ขั้นตอนนี้จะจัดสรรทรัพยากร Google Cloud ที่จำเป็นทั้งหมด ซึ่งรวมถึง Artifact Registry, Redis และ Cloud Run เมื่อเสร็จแล้ว Terraform จะสร้างบริการ Google Cloud Run ซึ่งเรียกใช้รูปภาพคอนเทนเนอร์ตัวยึดตำแหน่ง ขั้นตอนนี้อาจใช้เวลาหลายนาที

# Run from the infrastructure/ directory
terraform init
terraform apply

เมื่อ terraform apply แจ้งเตือน ให้ตรวจสอบแผนและพิมพ์ yes เพื่อยืนยัน

สร้างและติดตั้งใช้งานแอปพลิเคชัน MCG

หลังจากจัดสรรโครงสร้างพื้นฐานแล้ว ขั้นตอนถัดไปคือการสร้างซอร์สโค้ด MCG และติดตั้งใช้งานใน Google Cloud Run ซึ่งทำได้โดยการส่งซอร์สโค้ดไปยัง Google Cloud Build ซึ่งจะสร้างอิมเมจ Docker, พุชไปยัง Artifact Registry และอัปเดตบริการ Google Cloud Run เพื่อใช้อิมเมจใหม่

Google Cloud Build ใช้ตัวแปรการแทนที่ COMMIT_SHA เพื่อติดแท็กรูปภาพที่สร้างขึ้น คุณสามารถใช้หมายเลขเวอร์ชัน (เช่น v1.0.0) หรือ SHA ของคอมมิตในที่เก็บได้ การติดแท็กช่วยให้คุณแยกความแตกต่างระหว่างเวอร์ชันต่างๆ ใน Artifact Registry, จัดการการติดตั้งใช้งาน และย้อนกลับไปยังเวอร์ชันก่อนหน้าได้หากจำเป็น

เรียกใช้คำสั่ง gcloud ต่อไปนี้เพื่อทริกเกอร์การสร้างและการติดตั้งใช้งาน

# Run from the repository root
#
# The command tags the image with the Git commit SHA.
# To tag with a version number, replace '$(git rev-parse --short HEAD)' with the version number.
gcloud builds submit . \
  --config=cloudbuild.yaml \
  --substitutions=COMMIT_SHA=$(git rev-parse --short HEAD)

คำสั่งนี้จะทำการติดตั้งใช้งานโค้ดของแอปพลิเคชันในครั้งแรก หากต้องการติดตั้งใช้งานการอัปเดตซอร์สโค้ด MCG ให้เรียกใช้คำสั่งนี้อีกครั้ง

ให้สิทธิ์เข้าถึงและยืนยันการติดตั้งใช้งาน

หากต้องการอนุญาตให้ผู้ใช้หรือบัญชีบริการเรียกใช้ MCG API คุณต้องให้สิทธิ์บทบาท IAM Cloud Run Invoker (roles/run.invoker) แก่ผู้ใช้หรือบัญชีบริการดังกล่าว โดยทำดังนี้

gcloud run services add-iam-policy-binding mcg-service \
  --member=MEMBER_TYPE:EMAIL_ADDRESS \
  --role=roles/run.invoker \
  --region=your-gcp-region

คุณดู URL ของบริการได้โดยเรียกใช้คำสั่งต่อไปนี้ URL จะยังคงเหมือนเดิมตลอดการติดตั้งใช้งาน

SERVICE_URL=$(gcloud run services describe mcg-service \
  --region your-gcp-region \
  --format='value(status.url)')

หลังจากให้สิทธิ์แล้ว ให้ยืนยันว่าบริการทำงานอยู่และเข้าถึงได้โดยเรียกใช้ปลายทาง /health เนื่องจากบริการ Google Cloud Run ต้องมีการตรวจสอบสิทธิ์ คุณจึงต้องใส่โทเค็นการให้สิทธิ์จาก gcloud ในส่วนหัวของคำขอเมื่อเรียกใช้ปลายทาง ดังนี้

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  $SERVICE_URL/health

หากบริการทำงานอยู่ คำสั่งนี้จะแสดงผล OK และตอนนี้คุณสามารถเรียกใช้ปลายทาง API ใดก็ได้ตามที่อธิบายไว้ในเรียกใช้ API