Halaman ini menjelaskan cara men-deploy Metrics Configuration Generator (MCG).
Mengakses kode sumber
Kode sumber untuk 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.
Menjalankan secara lokal
Untuk menjalankan MCG dari direktori sumbernya untuk pengembangan dan pengujian lokal, gunakan
Bazel. Bazel harus diinstal. Anda harus mengaktifkan cache memori dengan menetapkan
MCG_LOCALCACHE=true saat menjalankan secara lokal. Hal ini mendukung penyimpanan Katalog Sinyal Kendaraan. Untuk membangun 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 melalui proses deployment, yang mencakup pembuatan file variabel, deployment infrastruktur, pembangunan dan deployment aplikasi, serta pemberian akses dan verifikasi deployment.
Karena Cloud Run adalah platform serverless, platform ini menghemat resource dengan hanya menjalankan container saat memproses permintaan, bukan dengan menjaga server tetap aktif 24/7. Artinya, data dalam memori akan hilang saat instance container dimatikan di antara permintaan; oleh karena itu, Redis diperlukan untuk menyediakan penyimpanan persisten untuk 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 memiliki 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) telah diinstal
- Google Cloud CLI (
gcloud) telah diinstal dan diautentikasi
Struktur file
Men-deploy ke Google Cloud melibatkan menjalankan perintah Terraform dari subdirektori infrastructure/ dan perintah Cloud Build dari root repositori. File dan direktori utama yang akan Anda gunakan 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 bagi variabel yang ditentukan di variables.tf dan sesuaikan
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 = "your-gcp-project-id" region = "your-gcp-region" # For example, us-central1 or europe-west1
Lihat variables.tf untuk mengetahui semua variabel yang tersedia dan nilai defaultnya. Anda dapat
mengganti nilai default dengan menetapkannya di terraform.tfvars.
Men-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 rencana dan ketik yes untuk mengonfirmasi.
Membangun dan men-deploy aplikasi MCG
Setelah infrastruktur disediakan, langkah berikutnya adalah membangun kode sumber MCG dan men-deploy-nya ke Google Cloud Run. Hal ini dilakukan dengan mengirimkan kode sumber ke Google Cloud Build, yang membangun image Docker, mengirimkannya ke Artifact Registry, dan mengupdate 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=MEMBER_TYPE:EMAIL_ADDRESS \ --role=roles/run.invoker \ --region=your-gcp-region
Anda bisa mendapatkan URL layanan dengan menjalankan perintah berikut. URL tetap stabil di seluruh deployment.
SERVICE_URL=$(gcloud run services describe mcg-service \ --region your-gcp-region \ --format='value(status.url)')
Setelah memberikan izin, pastikan 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 salah satu endpoint API seperti yang dijelaskan dalam Memanggil API.