- Penulis artikel, setelah mengikuti balapan sepeda Gravel Worlds Long Voyage, memutuskan mengoptimalkan makan dengan memesan pizza dari Casey's General Store
- Pada tahun sebelumnya, para pembalap yang lebih cepat telah menghabiskan semua pizza sehingga saat tiba tidak ada pizza yang tersisa
- Untuk mengatasi masalah ini, ia memutuskan membuat skrip yang memesan pizza saat GPS sepeda keluar dari geofence
- Skrip ini dibangun di atas pelacak GPS serverless yang dibuat pada tahun sebelumnya
- Skrip menghitung ETA ke titik pemberhentian berikutnya dan memicu fungsi Lambda yang memesan pizza ketika pelacak keluar dari geofence yang dikonfigurasi di layanan AWS Location
- Karena Casey's tidak memiliki API publik untuk pemesanan online, ia mengandalkan screen scraping situs web menggunakan Playwright
- Ia juga mengatur agar notifikasi push dikirim ke ponselnya berdasarkan keberhasilan atau kegagalan pemesanan pizza
- Saat balapan, ia menerima notifikasi keliru bahwa pizza telah berhasil dipesan, tetapi tidak ada catatan pesanan di titik pemberhentian
- Setelah balapan, ia menyempurnakan fungsi Lambda agar menangkap video saat browser berjalan dan mengunggahnya ke bucket S3 untuk dianalisis
- Ia menduga kegagalan terjadi karena Lambda mengakhiri proses segera setelah
form.submit() terakhir di browser Playwright diproses
- Meski gagal, ia belajar banyak dari proyek ini dan berencana mencobanya lagi pada balapan berikutnya
- Kode proyek ini dapat dilihat di GitHub
1 komentar
Komentar Hacker News
pizzatoolyang digunakan di Sun Microsystems