- 記事の筆者は、Gravel Worlds Long Voyage 自転車レースへの参加後、Casey's General Store でピザを注文して補給を最適化することを決定
- 前年は速い選手たちがピザをすべて食べてしまい、到着したときにはピザが残っていないという問題が発生
- この問題を解決するため、自転車GPSがジオフェンスを離れたらピザを注文するスクリプトを書くことにした
- このスクリプトは、前年に作成したサーバーレスGPSトラッカーの上に構築
- スクリプトは次の休憩地点への ETA を計算し、トラッカーが AWS Location サービス内で設定したジオフェンスを離れると、ピザを注文する Lambda 関数をトリガー
- Casey's にはオンライン注文用の公開 API がないため、Playwright を使ったウェブサイトのスクリーンスクレイピングに依存
- ピザ注文の成功または失敗に応じて、自分のスマートフォンにプッシュ通知が送信されるよう設定
- レース中、ピザの注文に成功したという誤った通知を受け取ったが、休憩地点には注文記録がなかった
- レース後、ブラウザ動作中の動画をキャプチャして分析用に S3 バケットへアップロードするよう Lambda 関数を改善
- 失敗の原因は、Playwright ブラウザ内の最後の
form.submit() が処理された直後に Lambda が実行を終了したためではないかと推測
- 失敗にもかかわらず、このプロジェクトから多くを学び、今後のレースで再挑戦する予定
- このプロジェクトのコードは GitHub で確認可能
1件のコメント
Hacker Newsの意見
pizzatoolの21世紀版になぞらえられているWaypoint Pizzaというピザ店が言及されており、特定のセーリングレース中にサンフランシスコ湾で配達している