Halaman ini menjelaskan cara men-deploy Metrics Configuration Generator (MCG).
Mengakses kode sumber
Kode sumber MCG dihosting di GitHub, di aaos-sdv-telemetry-mcg. Anda dapat menjalankan MCG secara lokal untuk pengembangan dan pengujian, atau men-deploy-nya ke lingkungan cloud untuk akses tim.
Jalankan secara lokal
Untuk menjalankan MCG dari direktori sumbernya untuk pengembangan dan pengujian lokal, gunakan Bazel. Bazel harus diinstal. Anda harus mengaktifkan caching dalam memori dengan menyetel
MCG_LOCALCACHE=true saat berjalan secara lokal. Hal ini mendukung penyimpanan Katalog Sinyal Kendaraan. Untuk mem-build dan menjalankan layanan secara lokal, gunakan perintah
berikut dari direktori sumber:
# 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
Men-deploy ke Google Cloud
Codebase MCG mencakup file Terraform dan Google Cloud Build untuk men-deploy MCG ke Google Cloud sebagai layanan Google Cloud Run. Bagian berikut akan memandu Anda dalam proses deployment, yang mencakup pembuatan file variabel, men-deploy infrastruktur, membangun dan men-deploy aplikasi, serta memberikan akses dan memverifikasi deployment.
Karena merupakan platform serverless, Cloud Run menghemat resource dengan hanya menjalankan container saat memproses permintaan, bukan menjaga server tetap aktif 24/7. Artinya, data dalam memori akan hilang saat instance penampung dimatikan di antara permintaan. Oleh karena itu, Redis diperlukan untuk menyediakan penyimpanan persisten bagi data katalog di seluruh pemanggilan layanan. Pendekatan ini menyediakan deployment yang skalabel dan cocok untuk penggunaan tim atau produksi.
Prasyarat
Sebelum memulai deployment ke Google Cloud, pastikan Anda telah memenuhi prasyarat berikut:
- Project Google Cloud dengan penagihan yang diaktifkan dan izin yang memadai untuk menyediakan resource dan peran IAM
- Terraform (v1.0.0 dan yang lebih tinggi) sudah diinstal
- Google Cloud CLI (
gcloud) diinstal dan diautentikasi
Struktur file
Deployment ke Google Cloud melibatkan menjalankan perintah Terraform dari
subdirektori infrastructure/ dan perintah Cloud Build dari root
repositori. File dan direktori utama yang berinteraksi dengan Anda adalah:
repository-root/
├── cloudbuild.yaml
└── infrastructure/
└── terraform.tfvars <-- you create this file
Membuat file variabel Terraform
Di direktori infrastructure/, buat file bernama terraform.tfvars untuk
memberikan nilai untuk variabel yang ditentukan dalam variables.tf dan menyesuaikan
deployment Anda. Anda perlu menentukan nilai untuk project_id dan region dalam file ini; semua variabel lainnya bersifat opsional. Tambahkan kode berikut ke 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
Lihat variables.tf untuk semua variabel yang tersedia dan nilai defaultnya. Anda dapat
mengganti nilai default dengan menyetelnya di terraform.tfvars.
Deploy infrastruktur
Setelah membuat terraform.tfvars, Anda dapat melakukan inisialisasi dan menerapkan konfigurasi Terraform. Langkah ini menyediakan semua resource Google Cloud yang diperlukan, termasuk Artifact Registry, Redis, dan Cloud Run. Setelah selesai, Terraform akan membuat layanan Google Cloud Run, yang menjalankan image container placeholder.
Langkah ini mungkin memerlukan waktu beberapa menit.
# Run from the infrastructure/ directory
terraform init
terraform apply
Saat diminta oleh terraform apply, tinjau paket dan ketik yes untuk mengonfirmasi.
Membangun dan men-deploy aplikasi MCG
Setelah infrastruktur disediakan, langkah berikutnya adalah membuat kode sumber MCG dan men-deploy-nya ke Google Cloud Run. Hal ini dilakukan dengan mengirimkan kode sumber ke Google Cloud Build, yang akan membangun image Docker, mengirimkannya ke Artifact Registry, dan memperbarui layanan Google Cloud Run untuk menggunakan image baru.
Google Cloud Build menggunakan variabel substitusi COMMIT_SHA untuk memberi tag pada image yang dibangun. Anda dapat menggunakan nomor versi (misalnya, v1.0.0), atau SHA commit repositori Anda. Pemberian tag membantu Anda membedakan versi di
Artifact Registry, mengelola deployment, dan melakukan roll back ke versi sebelumnya jika
diperlukan.
Jalankan perintah gcloud berikut untuk memicu build dan deployment:
# 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)
Perintah ini melakukan deployment awal kode aplikasi. Untuk men-deploy update ke kode sumber MCG, jalankan perintah ini lagi.
Memberikan akses dan memverifikasi deployment
Agar pengguna atau akun layanan dapat memanggil MCG API, Anda harus memberi mereka peran IAM
Cloud Run Invoker (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>
Anda bisa mendapatkan URL layanan dengan menjalankan perintah berikut. URL tetap stabil di seluruh deployment.
SERVICE_URL=$(gcloud run services describe mcg-service \
--region <var label="Google Cloud region">your-gcp-region</var> \
--format='value(status.url)')
Setelah memberikan izin, konfirmasi bahwa layanan berjalan dan dapat diakses
dengan memanggil endpoint /health-nya. Karena layanan Google Cloud Run memerlukan
autentikasi, Anda harus menyertakan token otorisasi dari gcloud di
header permintaan saat memanggil endpoint:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
$SERVICE_URL/health
Jika layanan berjalan, perintah ini akan menampilkan OK, dan Anda kini dapat memanggil endpoint API mana pun seperti yang dijelaskan dalam Memanggil API.