Dokumen ini menjelaskan cara memverifikasi deployment Cloud Deploy.
Anda dapat mengonfigurasi Cloud Deploy untuk memverifikasi bahwa aplikasi yang telah Anda deploy ke target mana pun berfungsi dengan benar. Verifikasi dilakukan menggunakan image pengujian Anda sendiri, dan Anda mengonfigurasi Cloud Deploy untuk menjalankan pengujian tersebut setelah deployment selesai.
Bagaimana cara kerja verifikasi deployment?
Anda mengonfigurasi satu atau beberapa target di pipeline penayangan untuk verifikasi deployment dengan menentukan tugas yang akan dijalankan.
Setelah aplikasi di-deploy, Cloud Deploy menjalankan tugas verifikasi di lingkungan eksekusi Cloud Deploy.
Keberhasilan atau kegagalan pengujian yang dijalankan menunjukkan keberhasilan atau kegagalan verifikasi:
Keberhasilan verifikasi ditentukan oleh kode keluar yang dihasilkan oleh container.
0menunjukkan keberhasilan. Kode keluar bukan nol menunjukkan kegagalan. Untuk menghasilkan hasil verifikasi yang diharapkan, pastikan penampung keluar dengan kode keluar yang sesuai. Jika lebih dari satu penampung dieksekusi sebagai bagian dari verifikasi, semuanya harus berhasil agar verifikasi berhasil.Jika verifikasi gagal, peluncuran juga akan gagal.
Jika deployment gagal selama verifikasi, Anda dapat melihatnya dengan memeriksa peluncuran:

Anda dapat mengabaikan atau mencoba lagi verifikasi yang gagal.
Anda juga dapat menghentikan tugas verifikasi yang sedang berlangsung.
Komponen yang digunakan untuk verifikasi
Resource rollout mencakup objek berikut, yang mendukung verifikasi deployment:
Fase
Kumpulan operasi (tugas) dalam peluncuran yang dikelompokkan secara logis, misalnya, deployment atau deployment dan verifikasi.
Tugas
Operasi spesifik yang akan dilakukan pada peluncuran, seperti men-deploy atau memverifikasi.
Menjalankan tugas
Turunan resource peluncuran, yaitu eksekusi tugas adalah instance tugas, misalnya upaya untuk men-deploy.
Untuk mengetahui informasi selengkapnya tentang resource Cloud Deploy, lihat Arsitektur layanan Cloud Deploy
Mengonfigurasi Cloud Deploy untuk verifikasi deployment
Mengaktifkan verifikasi deployment untuk target Cloud Deploy terdiri dari menambahkan stanza verify ke target tertentu (atau beberapa target) dalam progres pipeline pengiriman, seperti yang ditunjukkan dalam contoh ini:
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name: my-demo-app
description: main application pipeline
serialPipeline:
stages:
- targetId: dev
profiles: []
strategy:
standard:
verify:
tasks:
- type: container
image: "VERIFY_IMAGE"
command: [COMMANDS_TO_RUN]
args: [LIST_OF_ARGS]
env: {VERIFY_TASK_ENV_MAP}
Dalam YAML ini:
VERIFY_IMAGE
Adalah nama image yang ingin Anda jalankan untuk tugas verifikasi. Misalnya,
us-central1-docker.pkg.dev/gcp-project-id-12345/my-repository/my-app:v1.2untuk image Artifact Registry.COMMANDS_TO_RUN
Adalah daftar titik entri yang akan dijalankan di penampung tersebut.
"/bin/sh"adalah perintah umum yang dapat ditentukan di sini, untuk memanggil shell.LIST_OF_ARGS
Adalah daftar argumen yang akan diberikan ke perintah. Ini adalah daftar yang dipisahkan koma, dengan setiap argumen dalam tanda kutip. Jika COMMAND_TO_RUN 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.Berikut contohnya:
command: ["/bin/sh"] args: ["-c", `echo "This command ran!"`]VERIFY_TASK_ENV_MAP
Adalah peta variabel lingkungan yang diteruskan ke dalam container, dalam format
KEY:VAL.
Operasi verifikasi dieksekusi dalam lingkungan eksekusinya sendiri. Lingkungan eksekusi ini dapat dikonfigurasi untuk VERIFY sama seperti untuk RENDER dan DEPLOY.
Menjalankan verifikasi di cluster aplikasi
Secara default, verifikasi deployment berjalan di lingkungan eksekusi Cloud Deploy. Anda juga dapat mengonfigurasi Skaffold untuk menjalankan verifikasi di cluster yang sama tempat aplikasi Anda berjalan.
Untuk menjalankan penampung verifikasi di cluster, Anda harus mengonfigurasi penampung verifikasi di bagian stanza verify dalam skaffold.yaml. Untuk setiap penampung yang ditentukan, Anda juga harus menetapkan executionMode.kubernetesCluster.
verify:
- name:
container:
name:
image:
command:
args:
executionMode:
kubernetesCluster:
Berikut adalah contoh stanza verifikasi yang menyertakan executionMode untuk memanggil penampung verifikasi di cluster aplikasi:
verify:
- name: integration-test-container
container:
name: integration-test-container
image: integration-test-container
executionMode:
kubernetesCluster: {}
Selain itu, Anda harus menyetel stanza verify ke true dalam konfigurasi pipeline pengiriman.
Berikut adalah contoh definisi pipeline pengiriman dengan target dev yang mengaktifkan verifikasi.
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name: my-demo-app
description: main application pipeline
serialPipeline:
stages:
- targetId: dev
profiles: []
strategy:
standard:
verify: true
Kemampuan ini hanya tersedia untuk deployment ke GKE, bukan untuk Cloud Run. Deployment ke Cloud Run hanya dapat menjalankan verifikasi di lingkungan eksekusi Cloud Deploy.
Untuk deployment paralel, verifikasi dikonfigurasi pada multi-target, dan penampung verifikasi berjalan di setiap target turunan.
Anda juga dapat menyertakan properti jobManifestPath dan overrides,
di bagian kubernetesCluster, untuk menunjuk ke manifes untuk memverifikasi penampung, dan
nilai apa pun yang ingin Anda ganti. (overrides menggunakan JSON inline Kubernetes dengan
nilai yang ingin Anda ganti.) Pelajari lebih lanjut.
Bagian executionMode bersifat opsional, dan jika Anda menghapusnya, Skaffold akan menjalankan container verifikasi di lingkungan eksekusi Cloud Deploy.
Coba verifikasi lagi
Jika tugas verifikasi gagal, Anda dapat mencoba lagi verifikasi, sehingga membuat tugas baru:
gcloud deploy rollouts retry-job ROLLOUT_NAME \
--job-id=JOB_ID \
--phase-id=PHASE_ID \
--delivery-pipeline=PIPELINE_NAME \
--release=RELEASE_NAME \
--region=REGION
Mencoba ulang verifikasi akan mengubah status peluncuran dari FAILED menjadi
IN_PROGRESS.
Anda hanya dapat mencoba kembali verifikasi untuk peluncuran yang tugas verifikasinya gagal.
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 tugas lebih lanjut
- Coba panduan memulai: Memverifikasi deployment Anda