Penjadwalan Dinamis dengan AWS Lambda dan CloudWatch Rule dalam Bahasa Go

Rendy B. Junior
Mar 18, 2018 · 2 min read

Sudah lama saya ingin membuat bot Slack yang bisa mengingatkan waktu solat. Alasannya sederhana, di tempat kerja, saya lebih sering lihat Slack dibanding hp, jadi lebih efektif notifikasi slack. Namun saya tidak bisa menemukan Slack application yang tinggal di-install saja. Atau salah kata kunci pencarian ya?

Karena sedang belajar bahasa Go, sekalian saja dijadikan latihan. Saya buat notifikasi solat dengan AWS Lambda dan CloudWatch Rule. Belum lama ini AWS Lambda mendukung bahasa Go. Kenapa dinamis? Karena waktu salat itu berdasarkan posisi matahari yang setiap hari bisa beda.

Desain Sistem

Sistemnya terdiri dari tiga komponen:

  1. Lambda yang dijadwalkan untuk berjalan setiap jam 1 pagi, saya beri nama SalatTimeJKTDaily, gunanya untuk menjadwalkan Lambda di hari tersebut.
  2. Lima CloudWatch Rule SalatTimeJKT<Fajr|Dhuhr|Asr|Maghrib|Isha> yang di-set jadwalnya setiap jam 1 pagi oleh SalatTimeJKTDaily.
  3. Lambda yang akan ditrigger oleh CloudWatch Rule di atas, saya beri nama SalatTimeJKT. Lambda ini yang akan mengirimkan notifikasi ke Slack.

Untuk notifikasi ke Slack, saya menggunakan Zapier webhook supaya simple (Eh jadi 4 komponen ya? Biarin lah, one-off error is one of the hardest things in computer science…).

Lambda SalatTimeJKTDaily akan melakukan hal-hal berikut:

  1. memanggil API jadwal solat untuk mendapatkan jadwal hari tersebut,
  2. mengeset CloudWatch Rule dengan info yang didapatkan dari langkah pertama

Hasilnya

Supaya manfaat, pengingatnya 10 menit sebelum adzan, biar ada waktu siap-siap atau menyelesaikan yang sedang dikerjakan. Kodenya (yang hancur, masih awal belajar Go, ga bersih) open source, bisa diakses di repo sini (maaf reponya juga masih berantakan).

Rendy B. Junior

Written by

Crazy dad. Data technology enthusiast. https://rendyistyping.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade