Menentukan analisis kustom

Cloud Deploy mendukung tugas analisis yang menggunakan pemberitahuan yang dihasilkan oleh Google Cloud Observability berdasarkan metrik dan data lainnya 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 container kustom yang menyertakan 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. Pastikan penagihan diaktifkan untuk Google Cloud project 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. Pastikan penagihan diaktifkan untuk Google Cloud project 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 bahwa akun layanan Cloud Deploy memiliki izin yang diperlukan untuk membuat dan menggunakan tugas analisis, minta administrator untuk memberikan peran IAM berikut ke 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 kustom atau peran yang telah ditetapkan.

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 yang akan dijalankan di container tersebut untuk memproses data dari penyedia metrik Anda.

Bagian ini menjelaskan cara mengonfigurasi tugas analisis Cloud Deploy yang menggunakan penyedia non-Google Cloud pemantauan.

Stanza analysis dapat digunakan langsung di dalam konfigurasi strategi deployment (strategy.standard.analysis, untuk strategi standar). Jika 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 akan selesai. Jika analisis gagal (container menampilkan kode keluar bukan nol), tugas akan selesai (FAILED) sebelum durasi berakhir.

  • CHECK_ID

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

  • FREQUENCY

    Adalah frekuensi, dalam detik, untuk menjalankan setiap pemeriksaan.

  • 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", 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 container 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. Container Anda yang akan menggunakan nilai dalam logika analisis Anda.

Setiap pemeriksaan dalam definisi analisis kustom mencakup tugas yang mereferensikan container, perintah atau perintah yang akan dijalankan di container tersebut, dan variabel lingkungan yang berlaku untuk diteruskan ke container tersebut.

Container kustom

Untuk analisis kustom, container yang Anda berikan bertanggung jawab untuk menganalisis telemetri, log, atau data lainnya dari penyedia metrik yang Anda gunakan. Tugas analisis Cloud Deploy menunggu kode hasil dari container.

Hal yang harus dilakukan container kustom

Container kustom bertanggung jawab untuk memasukkan data dari penyedia metrik Anda, menentukan apakah metrik, log, atau data lainnya menunjukkan aplikasi yang berfungsi dengan baik, dan menampilkan hasilnya ke Cloud Deploy.

Hal yang harus ditampilkan container kustom

Cloud Deploy tidak memerlukan apa pun dari container kustom, selain menampilkan kode keluar nol atau bukan nol. Jika container menampilkan kode keluar bukan nol, analisis akan gagal.

Container dapat menulis hasil ke file bernama results.json (dalam format JSON), yang terletak di bucket Cloud Storage yang disediakan oleh Cloud Deploy. File tersebut akan berisi metadata, dalam bentuk key-value pair. Hal ini tidak wajib.

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 berjenis ANTHOS, nama resource yang sepenuhnya ditentukan dari keanggotaan Anthos.

  • CLOUD_RUN_LOCATION

    Untuk target berjenis 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 berjenis RUN, nama layanan Cloud Run yang di-deploy.

  • CLOUD_RUN_SERVICE_URLS

    Untuk target berjenis 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 Google Cloud konsol. URL dibuat oleh Cloud Run setelah Layanan atau Layanan Cloud Run Anda berhasil di-deploy. Oleh karena itu, variabel lingkungan ini hanya tersedia di hook pasca-deployment dan tugas verifikasi.

  • CLOUD_RUN_REVISION

    Untuk target berjenis RUN, revisi tertentu dari layanan Cloud Run.

  • GKE_CLUSTER

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

  • TARGET_TYPE

    Jenis runtime tertentu dari target. GKE, ANTHOS, atau RUN. Untuk target kustom, hal 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 untuk project yang berisi resource Cloud Deploy. Google Cloud

  • CLOUD_DEPLOY_PROJECT_ID

    Project ID untuk project. Google Cloud

  • CLOUD_DEPLOY_RELEASE

    ID rilis tempat hook akan berjalan.

  • CLOUD_DEPLOY_ROLLOUT

    ID peluncuran yang berisi tugas untuk hook.

  • CLOUD_DEPLOY_JOB_RUN

    ID proses tugas yang mewakili eksekusi tugas saat ini.

  • CLOUD_DEPLOY_PHASE

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

Langkah berikutnya