Pemberitahuan: Cek Uptime pada Topik Pub/Sub

1. Pengantar

Terakhir Diperbarui: 21 Juni 2023

Pemberitahuan tentang Cek Uptime untuk Ketersediaan

Pemberitahuan tentang pemeriksaan waktu aktif memungkinkan Anda mengidentifikasi dan menyelesaikan masalah yang dapat memengaruhi layanan dengan cepat. Dengan mendapatkan pemberitahuan tentang pemadaman layanan, Anda dapat mengambil langkah-langkah untuk meminimalkan dampaknya terhadap pengguna dan pelanggan Anda.

Pemeriksaan Uptime terjadi dalam interval, yang terpendek adalah 60 detik. Anda juga dapat memantau kode error sebagai peristiwa dinamis melalui pemberitahuan berbasis log sebagai indikator tambahan ketidaktersediaan jika Anda memerlukan perincian di luar 60 detik. Jika interval 60 detik atau lebih dapat diterima, pemeriksaan Uptime adalah cara mudah untuk mengukur layanan Anda dengan sedikit konfigurasi tambahan.

Jika layanan tidak tersedia, pemeriksaan waktu aktif akan mendeteksi masalah meskipun tidak ada traffic. Di sisi lain, traffic dapat dipengaruhi oleh faktor-faktor seperti pemeliharaan, upgrade, dan bahkan faktor eksternal terhadap sistem, seperti cuaca buruk atau acara olahraga yang mengganggu penggunaan.

Untuk mengetahui informasi selengkapnya tentang kapan harus menggunakan cek uptime, lihat Memastikan uptime resource Google Cloud Anda.

Topik Pub/Sub sebagai Saluran Notifikasi Pemberitahuan

Topik Pub/Sub dapat digunakan sebagai saluran notifikasi Google Cloud Monitoring untuk mengirimkan pemberitahuan ke langganan Pub/Sub. Hal ini memungkinkan Anda mengintegrasikan pemberitahuan Cloud Monitoring dengan sistem lain, termasuk layanan notifikasi pihak ketiga.

Untuk menggunakan topik Pub/Sub sebagai saluran notifikasi, Anda harus membuat topik Pub/Sub dan langganan Pub/Sub terlebih dahulu. Kemudian, Anda perlu membuat saluran notifikasi Cloud Monitoring yang menggunakan topik Pub/Sub sebagai tujuan.

Saat pemberitahuan dipicu, Cloud Monitoring akan mengirimkan pesan ke topik Pub/Sub. Pelanggan langganan Pub/Sub kemudian dapat memproses pesan dan mengambil tindakan yang sesuai.

Yang akan Anda bangun

Dalam codelab ini, Anda akan men-deploy aplikasi, membuat topik Pub/Sub, dan membuat pemberitahuan pemeriksaan uptime untuk aplikasi yang menggunakan topik Pub/Sub sebagai saluran notifikasi.

Yang akan Anda pelajari

  • Cara membuat topik Pub/Sub
  • Cara membuat cek uptime dan pemberitahuan

Codelab ini berfokus pada pembuatan pemberitahuan untuk cek uptime. Konsep dan kode aplikasi yang tidak relevan akan dibahas sekilas dan disediakan sehingga Anda cukup menyalin dan menempelkannya.

Yang Anda butuhkan

  • Akun Google Cloud dengan izin untuk:
  • Men-deploy aplikasi Cloud Run
  • Membuat topik Pub/Sub
  • Membuat cek uptime
  • Membuat pemberitahuan

2. Mempersiapkan

Pilih atau Buat Project Google Cloud

Untuk memilih project yang ada, gunakan dropdown:

b35bf95b8bf3d5d8.png

Untuk membuat project baru di Google Cloud, Anda dapat mengikuti langkah-langkah berikut:

  1. Buka Konsol Google Cloud Platform.
  2. Klik tombol Create Project.
  3. Masukkan nama project Anda.
  4. Pilih akun penagihan untuk project Anda.
  5. Klik tombol Buat.

Project Anda akan dibuat dan Anda akan diarahkan ke dasbor project. Dari sana, Anda dapat mulai menggunakan layanan Google Cloud.

Berikut beberapa detail tambahan tentang setiap langkah:

  • Nama: Nama project Anda harus unik dalam organisasi Anda.
  • Akun penagihan: Anda dapat menggunakan akun penagihan yang ada atau membuat akun penagihan baru.
  • Buat: Setelah Anda memasukkan semua informasi yang diperlukan, klik tombol Buat untuk membuat project Anda.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi Google Cloud tentang cara membuat project.

3. Men-deploy Aplikasi API

Apa yang dimaksud dengan aplikasi atau API contoh?

Aplikasi kami adalah aplikasi Inventory API sederhana yang mengekspos Endpoint REST API dengan beberapa operasi untuk mencantumkan item inventaris dan mendapatkan jumlah inventaris item tertentu.

Setelah men-deploy API dan menganggapnya dihosting di https://<somehost>, kita dapat mengakses endpoint API sebagai berikut:

https://<somehost>/inventory

Tindakan ini akan mencantumkan semua item produk dengan tingkat inventaris di tangan.

https://<somehost>/inventory/{productid}

Tindakan ini akan memberikan satu data dengan productid dan tingkat inventaris di tangan untuk produk tersebut.

Data respons yang ditampilkan adalah format JSON.

Catatan: Aplikasi API ini hanya untuk tujuan demo dan tidak mewakili penerapan API yang aman dan tangguh. Aplikasi ini dimaksudkan agar tersedia dengan cepat bagi kita, untuk mempelajari tujuan utama lab, yaitu Operasi Google Cloud.

Contoh Data dan Permintaan/Respons API

Aplikasi tidak didukung oleh database di backend untuk mempermudah. File ini berisi 3 ID produk contoh dan tingkat inventaris di tangan.

ID Produk

Tingkat Inventaris di Tangan

I-1

10

I-2

20

I-3

30

Contoh Permintaan dan Respons API ditampilkan di bawah:

Permintaan API

Respons API

https://<somehost>/inventory

[ { "I-1": 10, "I-2": 20, "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 20}

https://<somehost>/inventory/I-200

{ "productid": I-200, "qty": -1}

Membuat Clone Repositori

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Konsol GCP, klik ikon Cloud Shell di toolbar kanan atas:

bce75f34b2c53987.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

f6ef2b5f13479f3a.png

Virtual machine ini dimuat dengan semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda di lab ini dapat dilakukan hanya dengan browser.

Menyiapkan gcloud

Di Cloud Shell, tetapkan project ID Anda dan simpan sebagai variabel PROJECT_ID.

PROJECT_ID=[YOUR-PROJECT-ID]

gcloud config set project $PROJECT_ID

Sekarang, jalankan perintah berikut:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git

Tindakan ini akan membuat folder berjudul cloud-code-sample-repository di folder ini.

(Opsional) Jalankan aplikasi di Cloud Shell

Anda dapat menjalankan aplikasi secara lokal dengan mengikuti langkah-langkah berikut:

  1. Dari terminal, buka API versi Python melalui perintah berikut:

$ cd cloud-code-sample-repository

$ cd python-flask-api

  1. Di terminal, berikan perintah berikut (Pada saat penulisan, Cloud Shell dilengkapi dengan Python 3.9.x yang sudah diinstal dan kita akan menggunakan versi default. Jika Anda berencana menjalankannya secara lokal di laptop, Anda dapat menggunakan Python 3.8+) :

$ python app.py

  1. Anda dapat menjalankan perintah berikut untuk memulai Server Python secara lokal.

1f798fbddfdc2c8e.png 46edf454cc70c5a6.png

Klik Preview on port 8080. 5. Tindakan ini akan membuka jendela browser. Anda akan melihat Error 404 dan itu tidak masalah. Ubah URL dan ubah agar hanya memiliki /inventory setelah nama host.

Misalnya, di komputer saya, tampilannya seperti ini:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

Tindakan ini akan menampilkan daftar item inventaris seperti yang dijelaskan sebelumnya:

709d57ee2f0137e4.png

  1. Anda dapat menghentikan server sekarang dengan membuka Terminal dan menekan Ctrl-C

Men-deploy aplikasi

Sekarang kita akan men-deploy aplikasi API ini ke Cloud Run. Proses ini melibatkan penggunaan klien command line gcloud untuk menjalankan perintah guna men-deploy kode ke Cloud Run.

Dari terminal, berikan perintah gcloud berikut:

$ gcloud run deploy --source .

Anda akan ditanyai beberapa pertanyaan dan beberapa poinnya disebutkan di bawah:

  1. Nama layanan (python-flask-api): Gunakan nama default ini atau pilih nama lain seperti my-inventory-api
  2. API [run.googleapis.com] tidak diaktifkan di project [613162942481]. Apakah Anda ingin mengaktifkan dan mencoba lagi (proses ini akan memerlukan waktu beberapa menit)? (y/N)? Y
  3. Tentukan region: Pilih 31 (us-west-1)
  4. API [artifactregistry.googleapis.com] tidak diaktifkan di project [613162942481]. Apakah Anda ingin mengaktifkan dan mencoba lagi (proses ini akan memerlukan waktu beberapa menit)? (y/N)? Y
  5. Men-deploy dari sumber memerlukan repositori Docker Artifact Registry untuk menyimpan container yang di-build. Repositori bernama [cloud-run-source-deploy] di region [us-west1] akan dibuat.
  6. Do you want to continue (Y/n)? Y
  7. Allow unauthenticated invocations to [my-inventory-api] (y/N)? Y

Pada akhirnya, hal ini akan memulai proses untuk mengambil kode sumber Anda, memasukkannya ke dalam container, mengirimkannya ke Artifact Registry, lalu men-deploy layanan + revisi Cloud Run. Anda harus bersabar selama proses ini (dapat memakan waktu 3-4 menit) dan Anda akan melihat proses selesai dengan URL Layanan ditampilkan kepada Anda.

Contoh eksekusi ditampilkan di bawah:

87ba8dbf88e8cfa4.png

Menguji aplikasi

Setelah men-deploy aplikasi ke Cloud Run, Anda dapat mengakses aplikasi API sebagai berikut:

  1. Catat URL Layanan dari langkah sebelumnya. Misalnya, di penyiapan saya, ditampilkan sebagai https://my-inventory-api-bt2r5243dq-uw.a.run.app. Mari kita sebut ini <SERVICE_URL>.
  2. Buka browser dan akses 3 URL berikut untuk endpoint API:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

Hal ini harus sesuai dengan spesifikasi yang telah kami berikan di bagian sebelumnya dengan Contoh Permintaan dan Respons API.

Mendapatkan Detail Layanan dari Cloud Run

Kami men-deploy Layanan API ke Cloud Run, lingkungan komputasi serverless. Kita dapat mengunjungi layanan Cloud Run melalui konsol Google Cloud kapan saja.

Dari menu utama, buka Cloud Run. Tindakan ini akan menampilkan daftar layanan yang Anda jalankan di Cloud Run. Anda akan melihat layanan yang baru saja di-deploy. Bergantung pada nama yang Anda pilih, Anda akan melihat sesuatu seperti ini:

2633965c4bc957cc.png

Klik Nama layanan untuk melihat detailnya. Detail sampel ditampilkan di bawah:

33042ae64322ce07.png

Perhatikan URL-nya, yang tidak lain adalah URL layanan yang dapat Anda masukkan ke browser dan akses Inventory API yang baru saja kita deploy. Lihat Metrik dan detail lainnya.

Mari kita mulai menggunakan Google Cloud Operations Suite sekarang.

4. Membuat Topik Pub/Sub untuk Menerima Notifikasi Pemberitahuan

Untuk membuat topik Pub/Sub, Anda dapat mengikuti langkah-langkah berikut di Konsol Google Cloud:

  1. Telusuri Pub/Sub di kotak Penelusuran, lalu buka Pub/Sub. 935028bd8f6328ef.png
  2. Klik tab Topics jika Anda belum membukanya. 7fd8bf91386a88fd.png
  3. Klik tombol Create Topic. cd9d197f9023c41b.png
  4. Masukkan nama untuk topik Anda.

173f313b4a3c4934.png

  1. Klik tombol Create. ca9a02477da21a44.png
  2. Salin Nama topik menggunakan tombol ikon salin. Anda akan memerlukannya untuk bagian berikutnya.

20848252ee83df93.png

5. Membuat Cek Uptime

Untuk membuat cek uptime untuk aplikasi Google Cloud Run:

  1. Buka Konsol Google Cloud Platform.
  2. Klik tab Pemantauan.
  3. Klik tab Uptime Checks.
  4. Di dekat bagian atas halaman, klik tombol Create Uptime Check.

96561799ca500777.png

  1. Gunakan nilai berikut:
  2. Protokol : HTTPS
  3. Jenis resource : URL
  4. Nama host : Masukkan bagian URL Layanan Cloud Run tanpa https. Contohnya ada di layar di bawah. Jika Anda tidak yakin apa URL layanannya, buka Cloud Run dari Konsol Google Cloud utama dan buka detail layanan Cloud Run seperti yang dijelaskan sebelumnya untuk mendapatkan URL Layanan.
  5. Jalur : sehat
  6. Frekuensi cek: 1 menit

342865c6d921ff41.png

  1. Klik Lanjutkan
  2. Aktifkan Pencocokan konten diaktifkan
  3. Masukkan "All Izz Well" di bagian Response Content; string ini sudah ada di aplikasi saat mengirimkan respons lengkap.
  4. Keep

6c9ad336b5479478.png

  1. Tetapkan Acceptable HTTP Response Code ke Response Code Classes, dan 2xx sebagai satu-satunya class kode respons. Dengan cara ini, hanya kode respons dengan 2xx yang akan dievaluasi untuk string, dan yang lainnya akan otomatis dihitung sebagai pemeriksaan yang gagal. 5a75d8a9e8a11dd4.png
  2. Klik Lanjutkan
  3. Pilih topik Cloud Pub/Sub sebagai saluran notifikasi, lalu klik OKE

d00db9f6ac56d07c.png

  1. Klik Lanjutkan
  2. Tambahkan judul yang mudah dikenali d639135da780cce3.png
  3. Klik tombol Uji

968753a66ed43a75.png

  1. Tinjau, lalu klik tombol Buat setelah siap 72e5e2081a36d902.png

Pemeriksaan uptime Anda akan dibuat dan akan mulai memantau aplikasi Cloud Run Anda. Anda dapat melihat status pemeriksaan uptime di tab Uptime Checks.

3fd026b0c07ef4ec.png

6. Selamat

Selamat, Anda telah berhasil mengonfigurasi Pemeriksaan Uptime untuk mengirimkan pemberitahuan ke Pub/Sub.