Menentukan analisis kustom

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

  1. Login ke Akun Google Anda.

    Jika Anda belum memilikinya, Daftar untuk membuat akun baru.

  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.

  6. Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.

  7. 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 izin serviceusage.services.enable. Pelajari cara memberikan peran.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Instal Google Cloud CLI.

  9. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  10. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  11. Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.

  12. Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.

  13. 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 izin serviceusage.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:

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:

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:

  • DURATION

    Adalah 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_ID

    Adalah ID untuk pemeriksaan perorangan. ID ini harus unik dalam tugas analisis ini

  • FREQUENCY

    Adalah frekuensi, dalam detik, untuk menjalankan pemeriksaan individual.

  • IMAGE_NAME

    Adalah jalur dan nama yang mengidentifikasi image container Anda.

  • COMMAND

    Adalah perintah yang akan dijalankan di container tersebut, misalnya skrip shell (/bin/bash).

  • ARGS

    Adalah 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_NAME

    Adalah 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.

  • VALUE

    Adalah 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_MEMBERSHIP

    Untuk target jenis ANTHOS, nama resource yang sepenuhnya ditentukan dari keanggotaan Anthos.

  • CLOUD_RUN_LOCATION

    Untuk target jenis RUN, region tempat layanan Cloud Run di-deploy.

  • CLOUD_RUN_PROJECT

    Untuk target berjenis RUN, project tempat layanan Cloud Run dibuat.

  • CLOUD_RUN_SERVICE

    Untuk target jenis RUN, nama layanan Cloud Run yang di-deploy.

  • CLOUD_RUN_SERVICE_URLS

    Untuk 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_REVISION

    Untuk target jenis RUN, revisi spesifik layanan Cloud Run.

  • GKE_CLUSTER

    Untuk target jenis GKE, nama resource yang sepenuhnya ditentukan dari cluster Google Kubernetes Engine, misalnya projects/p/locations/us-central1/clusters/dev.

  • TARGET_TYPE

    Jenis runtime spesifik target. GKE, ANTHOS, atau RUN. Untuk target kustom, kolom ini tidak akan ditetapkan.

  • CLOUD_DEPLOY_LOCATION

    Region yang berisi resource Cloud Deploy.

  • CLOUD_DEPLOY_DELIVERY_PIPELINE

    ID pipeline pengiriman.

  • CLOUD_DEPLOY_TARGET

    ID target.

  • CLOUD_DEPLOY_PROJECT

    Nomor project Google Cloud untuk project yang berisi resource Cloud Deploy.

  • CLOUD_DEPLOY_PROJECT_ID

    Project ID Google Cloud untuk project.

  • CLOUD_DEPLOY_RELEASE

    ID rilis tempat hook akan berjalan.

  • CLOUD_DEPLOY_ROLLOUT

    ID peluncuran yang berisi tugas untuk hook.

  • CLOUD_DEPLOY_JOB_RUN

    ID operasi tugas yang merepresentasikan eksekusi tugas saat ini.

  • CLOUD_DEPLOY_PHASE

    Fase dalam peluncuran yang berisi tugas untuk hook deployment, tugas verifikasi, atau render atau deployment kustom.

Langkah berikutnya