หน้านี้อธิบายวิธีติดตั้งใช้งาน เครื่องมือสร้างการกำหนดค่าเมตริก (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 = "<var label="Google Cloud project ID">your-gcp-project-id</var>"
region = "<var label="Google Cloud region">your-gcp-region</var>" # 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 (roles/run.invoker) แก่ผู้ใช้หรือบัญชีบริการ
gcloud run services add-iam-policy-binding mcg-service \
--member=<var label="member type, e.g. user or serviceAccount">MEMBER_TYPE</var>:<var label="email address of member">EMAIL_ADDRESS</var> \
--role=roles/run.invoker \
--region=<var label="Google Cloud region">your-gcp-region</var>
คุณรับ URL ของบริการได้โดยเรียกใช้คำสั่งต่อไปนี้ URL จะยังคง เสถียรในการติดตั้งใช้งาน
SERVICE_URL=$(gcloud run services describe mcg-service \
--region <var label="Google Cloud region">your-gcp-region</var> \
--format='value(status.url)')
หลังจากให้สิทธิ์แล้ว ให้ยืนยันว่าบริการทำงานและเข้าถึงได้
โดยเรียกใช้/healthปลายทางของบริการ เนื่องจากบริการ Google Cloud Run ต้องมีการตรวจสอบสิทธิ์ คุณจึงต้องรวมโทเค็นการให้สิทธิ์จาก gcloud ไว้ในส่วนหัวของคำขอเมื่อเรียกใช้ปลายทาง
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
$SERVICE_URL/health
หากบริการทำงานอยู่ คำสั่งนี้จะแสดง OK และตอนนี้คุณสามารถเรียกใช้ปลายทาง API ใดก็ได้ตามที่อธิบายไว้ในเรียกใช้ API