Pemberitahuan: Cek Uptime pada Topik Pub/Sub

Pemberitahuan:
Cek Uptime pada Topik Pub/Sub

Tentang codelab ini

subjectTerakhir diperbarui Jul 7, 2023
account_circleDitulis oleh Aron Eidelman

1. Pengantar

Terakhir Diperbarui: 21 Juni 2023

Pemberitahuan tentang Cek Uptime untuk Ketersediaan

Dengan pemberitahuan tentang cek uptime, Anda dapat mengidentifikasi dan menyelesaikan dengan cepat masalah yang mungkin memengaruhi layanan Anda. Dengan diberi tahu tentang pemadaman layanan, Anda dapat mengambil langkah-langkah untuk meminimalkan dampaknya terhadap pengguna dan pelanggan Anda.

Cek Uptime terjadi dalam interval, yang tersingkat adalah 60 detik. Sebaiknya pantau juga kode error sebagai peristiwa dinamis melalui notifikasi berbasis log sebagai indikator tambahan ketidaktersediaan jika Anda memerlukan tingkat perincian di atas 60 detik. Jika interval 60 detik atau lebih dapat diterima, Cek Uptime adalah cara mudah untuk mengukur layanan Anda dengan sedikit konfigurasi tambahan.

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

Untuk mengetahui informasi selengkapnya tentang waktu yang tepat untuk menggunakan cek uptime, lihat Memastikan waktu beroperasi resource Google Cloud Anda.

Topik Pub/Sub sebagai Saluran Notifikasi Pemberitahuan

Topik Pub/Sub dapat digunakan sebagai saluran notifikasi Google Cloud Monitoring untuk mengirim 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 mengirim pesan ke topik Pub/Sub. Pelanggan langganan Pub/Sub 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 cek 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

Memilih atau Membuat Project Google Cloud

Untuk memilih project yang ada, gunakan menu 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 dibawa 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.
  • Akun penagihan: Anda dapat menggunakan akun penagihan yang sudah ada atau membuat yang baru.
  • Buat: Setelah memasukkan semua informasi yang diperlukan, klik tombol Buat untuk membuat project Anda.

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

3. Men-deploy Aplikasi API

Apa yang dimaksud dengan aplikasi contoh atau API tersebut?

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

Setelah kita men-deploy API dan mengasumsikan bahwa API tersebut 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 id produk dan tingkat inventaris langsung untuk produk tersebut.

Data respons yang ditampilkan adalah format JSON.

Catatan: Aplikasi API ini hanya untuk tujuan demo dan tidak merepresentasikan implementasi API yang aman dan andal. Lab ini dimaksudkan untuk menyediakan aplikasi cepat bagi kita, guna mempelajari tujuan utama lab, yaitu Google Cloud Operations.

Data Contoh dan Permintaan/Respons API

Aplikasi tidak didukung oleh database di backend untuk menyederhanakan semuanya. Contoh ID produk ini berisi 3 contoh ID produk dan tingkat inventarisnya.

ID Produk

Tingkat Inventaris Langsung

I-1

10

I-2

20

I-3

30

Contoh Permintaan dan Respons API ditampilkan di bawah ini:

Permintaan API

Respons API

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -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 GCP Console, 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

Mesin virtual ini dimuat dengan semua alat pengembangan yang Anda butuhkan. 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

Ini akan membuat folder berjudul {i>cloud-code-sample-repository<i} dalam folder ini.

(Opsional) Menjalankan aplikasi di Cloud Shell

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

  1. Dari terminal, buka versi Python API 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 terinstal dan kita akan menggunakan versi default-nya. Jika Anda berencana untuk menjalankannya secara lokal di laptop Anda, Anda dapat menggunakan Python 3.8+) :

$ python app.py

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

1f798fbddfdc2c8e.pngS 46edf454cc70c5a6.pngS

Klik Preview pada port 8080. 5. Tindakan ini akan membuka jendela browser. Anda akan melihat pesan {i>Error<i} 404 dan itu bukan masalah. Ubah URL dan ubah menjadi hanya berisi /inventory setelah nama host.

Misalnya, di komputer saya, terlihat 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.pngS

  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 .

Langkah ini akan mengajukan beberapa pertanyaan dan beberapa poin disebutkan di bawah ini:

  1. Nama layanan (python-flask-api): Gunakan default ini atau pilih sesuatu seperti my-inventory-api
  2. API [run.googleapis.com] tidak diaktifkan di project [613162942481]. Apakah Anda ingin mengaktifkan dan mencoba lagi (proses ini memerlukan waktu beberapa menit)? (y/T)? Y
  3. Tentukan wilayah: Pilih 31 (us-west-1)
  4. API [artifactregistry.googleapis.com] tidak diaktifkan pada project [613162942481]. Apakah Anda ingin mengaktifkan dan mencoba lagi (proses ini memerlukan waktu beberapa menit)? (y/T)? Y
  5. Men-deploy dari sumber memerlukan repositori Docker Artifact Registry untuk menyimpan container yang dibangun. Repositori bernama [cloud-run-source-deploy] di region [us-west1] akan dibuat.
  6. Ingin melanjutkan (Y/t)? Y
  7. Izinkan pemanggilan yang tidak diautentikasi ke [my-inventory-api] (y/N)? Y

Terakhir, langkah ini akan memulai proses untuk mengambil kode sumber Anda, menyimpannya ke dalam container, mengirimnya ke Artifact Registry, lalu men-deploy layanan + revisi Cloud Run. Anda harus bersabar melalui proses ini (dapat memerlukan waktu 3-4 menit) dan Anda akan melihat proses diselesaikan dengan URL Layanan yang ditunjukkan kepada Anda.

Contoh operasi ditampilkan di bawah ini:

87ba8dbf88e8cfa4.png

Uji aplikasi.

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

  1. Catat URL Layanan dari langkah sebelumnya. Misalnya, pada penyiapan saya, ditampilkan sebagai https://my-inventory-api-bt2r5243dq-uw.a.run.app. Sebut saja <SERVICE_URL> ini.
  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

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 telah Anda jalankan di Cloud Run. Anda akan melihat layanan yang baru saja di-deploy. Bergantung pada nama yang dipilih, Anda akan melihat sesuatu seperti ini:

2633965c4bc957cc.pngS

Klik nama Layanan untuk melihat detailnya. Detail contoh ditampilkan di bawah ini:

33042ae64322ce07.pngS

Perhatikan URL ini, yang hanyalah URL layanan yang dapat Anda masukkan ke browser dan mengakses Inventory API yang baru saja di-deploy. Lihat Metrik dan detail lainnya.

Mari mulai dengan 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 Google Cloud Console:

  1. Telusuri Pub/Sub di Kotak penelusuran, lalu buka Pub/Sub. 935028bd8f6328ef.pngS
  2. Klik tab Topik jika belum berada di sana. 7fd8bf91386a88fd.png
  3. Klik tombol Create Topic. cd9d197f9023c41b.png
  4. Masukkan nama untuk topik Anda.

173f313b4a3c4934.pngS

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

20848252ee83df93.pngS

5. Membuat Cek Uptime

Agar dapat membuat cek uptime untuk aplikasi Google Cloud Run:

  1. Buka Konsol Google Cloud Platform.
  2. Klik tab Monitoring.
  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. Contoh ada pada layar di bawah ini. Jika Anda tidak tahu apa URL layanannya, buka Cloud Run dari Google Cloud Console utama dan buka detail layanan Cloud Run seperti yang dijelaskan sebelumnya untuk mendapatkan URL Layanan.
  5. Jalur : sehat
  6. Periksa frekuensi: 1 menit

342865c6d921ff41.pngS

  1. Klik Lanjutkan
  2. Aktifkan Pencocokan konten diaktifkan
  3. Masukkan "All Izz Well" di bagian Konten Respons; string ini sudah ada di aplikasi ketika mengirim respons lengkap.
  4. Keep

6c9ad336b5479478.png

  1. Tetapkan Kode Respons HTTP yang Dapat Diterima ke Class Kode Respons, dan 2xx sebagai satu-satunya class kode respons. Dengan cara ini, hanya kode respons dengan 2xx yang akan dievaluasi untuk string, dan kode respons lainnya akan otomatis dihitung sebagai pemeriksaan yang gagal. 5a75d8a9e8a11dd4.pngS
  2. Klik Lanjutkan
  3. Pilih topik Cloud Pub/Sub sebagai saluran notifikasi, lalu klik OK

d00db9f6ac56d07c.png

  1. Klik Lanjutkan
  2. Tambahkan judul yang dapat dikenali d639135da780cce3.png
  3. Klik tombol Test.

968753a66ed43a75.pngS

  1. Tinjau dan klik tombol Buat jika sudah siap 72e5e2081a36d902.pngS

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

3fd026b0c07ef4ec.pngS

6. Selamat

Selamat, Anda telah berhasil mengonfigurasi Cek Uptime untuk mengirim pemberitahuan ke Pub/Sub.