Cloud Deploy mendukung tugas analisis yang menggunakan pemberitahuan yang dihasilkan oleh Google Cloud Observability berdasarkan metrik dan data lain juga dari Google Cloud Observability. Namun, Anda juga dapat memperluas Cloud Deploy untuk menggunakan penyedia metrik lainnya. Dokumen ini menjelaskan cara mengonfigurasi dan menggunakan tugas analisis, serta persyaratan untuk penampung kustom yang mencakup logika untuk menganalisis metrik dari penyedia pilihan Anda.
Sebelum memulai
-
Login ke Akun Google Anda.
Jika Anda belum memilikinya, Daftar untuk membuat akun baru.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Compute Engine, Cloud Deploy API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Compute Engine, Cloud Deploy API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat dan menggunakan tugas analisis, minta administrator untuk memberi Anda peran IAM berikut di akun untuk project Anda:
-
Peluncur Tugas Cloud Deploy (
roles/clouddeploy.jobRunner) -
Pengguna Akun Layanan IAM (
roles/iam.serviceAccountUser) -
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Untuk memastikan akun layanan Cloud Deploy memiliki izin yang diperlukan untuk membuat dan menggunakan tugas analisis, minta administrator Anda untuk memberikan peran IAM berikut kepada akun layanan Cloud Deploy di project Anda:
-
Pengguna Akun Layanan IAM (
roles/iam.serviceAccountUser) -
Pelepas Cloud Deploy (
roles/clouddeploy.releaser) -
Operator Cloud Deploy (
roles/clouddeploy.operator)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan Cloud Deploy melalui peran khusus atau peran bawaan lainnya.
Mengonfigurasi tugas analisis kustom
Tugas analisis kustom sama dengan tugas analisis yang menggunakan pemberitahuan dari Google Cloud Observability, tetapi tugas kustom menggunakan satu atau beberapa tugas yang mereferensikan container kustom dan perintah untuk dijalankan di container tersebut guna memproses data dari penyedia metrik Anda.
Bagian ini menjelaskan cara mengonfigurasi tugas analisis Cloud Deploy yang menggunakan penyedia pemantauan non-Google Cloud .
Bagian analysis dapat digunakan langsung di dalam konfigurasi
strategi deployment (strategy.standard.analysis, untuk strategi standar). Jika Anda ingin
mengonfigurasi analisis per fase, Anda menggunakan canary kustom
(strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
strategy:
standard:
analysis:
duration: DURATION
customChecks:
- id: CHECK_ID
frequency: FREQUENCY
task:
type: container
image: IMAGE_NAME
command: COMMAND
args: [ARGS]
env:
[VAR_NAME: VALUE]
Dengan:
DURATIONAdalah durasi, dalam detik, untuk menjalankan tugas analisis. Setelah durasi berakhir, tugas selesai. Jika analisis gagal (penampung menampilkan kode keluar non-nol), tugas akan selesai (
FAILED) sebelum durasi berakhir.CHECK_IDAdalah ID untuk pemeriksaan perorangan. ID ini harus unik dalam tugas analisis ini
FREQUENCYAdalah frekuensi, dalam detik, untuk menjalankan pemeriksaan individual.
IMAGE_NAMEAdalah jalur dan nama yang mengidentifikasi image container Anda.
COMMANDAdalah perintah yang akan dijalankan di container tersebut, misalnya skrip shell (
/bin/bash).ARGSAdalah daftar argumen untuk perintah tersebut. Ini adalah daftar yang dipisahkan koma. Jika COMMAND_TO_RUN Anda adalah "/bin/sh", maka salah satu argumen di sini adalah
-c, dan argumen lainnya adalah seluruh perintah yang ingin Anda jalankan di shell yang Anda panggil.VAR_NAMEAdalah nama variabel lingkungan yang akan diteruskan ke container. Anda menggunakan variabel lingkungan untuk mengonfigurasi perilaku container. Artinya, variabel dan nilainya memberi tahu penampung apa yang harus dipantau secara khusus di penyedia metrik.
Anda dapat menggunakan parameter sistem sebagai variabel lingkungan di sini.
VALUEAdalah nilai setiap variabel lingkungan. Cloud Deploy tidak melakukan apa pun dengan variabel lingkungan ini, kecuali meneruskannya, beserta nilainya, ke container Anda. Penampung Anda yang akan menggunakan nilai dalam logika analisis Anda.
Setiap pemeriksaan dalam definisi analisis kustom mencakup tugas yang mereferensikan penampung, perintah atau perintah yang akan dijalankan pada penampung tersebut, dan variabel lingkungan yang berlaku untuk diteruskan ke penampung tersebut.
Container kustom
Untuk analisis kustom, penampung yang Anda berikan bertanggung jawab untuk menganalisis telemetri, log, atau data lain dari penyedia metrik yang Anda gunakan. Tugas analisis Cloud Deploy menunggu kode yang ditampilkan dari penampung.
Tugas yang harus dilakukan container kustom
Penampung kustom bertanggung jawab untuk menyerap data dari penyedia metrik Anda, menentukan apakah metrik, log, atau data lainnya menunjukkan aplikasi berfungsi dengan baik, dan menampilkan hasilnya ke Cloud Deploy.
Yang harus ditampilkan oleh container kustom
Cloud Deploy tidak memerlukan apa pun dari container kustom, selain mengembalikan kode keluar nol atau bukan nol. Jika container menampilkan kode keluar bukan nol, analisis akan gagal.
Penampung dapat menulis hasil ke file bernama results.json (dalam format
JSON), yang berada di bucket Cloud Storage yang disediakan oleh
Cloud Deploy. File akan berisi metadata, dalam bentuk
key-value pair. Hal ini tidak diperlukan.
Variabel lingkungan yang tersedia
Cloud Deploy juga menyediakan dan mengisi variabel lingkungan berikut di lingkungan eksekusi. Anda dapat menggunakan variabel lingkungan ini sebagai bagian dari hook deployment, tugas verifikasi, atau target kustom render atau deployment.
ANTHOS_MEMBERSHIPUntuk target jenis
ANTHOS, nama resource yang sepenuhnya ditentukan dari keanggotaan Anthos.CLOUD_RUN_LOCATIONUntuk target jenis
RUN, region tempat layanan Cloud Run di-deploy.CLOUD_RUN_PROJECTUntuk target berjenis
RUN, project tempat layanan Cloud Run dibuat.CLOUD_RUN_SERVICEUntuk target jenis
RUN, nama layanan Cloud Run yang di-deploy.CLOUD_RUN_SERVICE_URLSUntuk target jenis
RUN, URL atau URL (daftar yang dipisahkan koma) yang akan digunakan pengguna akhir untuk mengakses layanan Anda. Anda dapat menemukannya di detail layanan Cloud Run untuk layanan Anda, di konsol Google Cloud . URL dibuat oleh Cloud Run setelah Layanan Cloud Run Anda berhasil di-deploy. Oleh karena itu, variabel lingkungan ini hanya tersedia di hook pasca-deployment dan verifikasi tugas.CLOUD_RUN_REVISIONUntuk target jenis
RUN, revisi spesifik layanan Cloud Run.GKE_CLUSTERUntuk target jenis
GKE, nama resource yang sepenuhnya ditentukan dari cluster Google Kubernetes Engine, misalnyaprojects/p/locations/us-central1/clusters/dev.TARGET_TYPEJenis runtime spesifik target.
GKE,ANTHOS, atauRUN. Untuk target kustom, kolom ini tidak akan ditetapkan.CLOUD_DEPLOY_LOCATIONRegion yang berisi resource Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEID pipeline pengiriman.
CLOUD_DEPLOY_TARGETID target.
CLOUD_DEPLOY_PROJECTNomor project Google Cloud untuk project yang berisi resource Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDProject ID Google Cloud untuk project.
CLOUD_DEPLOY_RELEASEID rilis tempat hook akan berjalan.
CLOUD_DEPLOY_ROLLOUTID peluncuran yang berisi tugas untuk hook.
CLOUD_DEPLOY_JOB_RUNID operasi tugas yang merepresentasikan eksekusi tugas saat ini.
CLOUD_DEPLOY_PHASEFase dalam peluncuran yang berisi tugas untuk hook deployment, tugas verifikasi, atau render atau deployment kustom.
Langkah berikutnya
Pelajari cara menyiapkan analisis deployment.
Lihat skema konfigurasi untuk analisis di referensi konfigurasi Cloud Deploy.
Pelajari lebih lanjut otomatisasi deployment.
Pelajari lebih lanjut strategi deployment.