アマゾンダッシュボタンで勤怠管理
どうも、こんばんは。
アマゾンダッシュボタンを利用した,Google Spread Sheetでの勤怠管理アプリができました!🙌
動作風景は以下のような感じです。
ボタン一個で,出勤のエンドポイントしか叩けていないので,出力も出勤時間のみです。
ボタン一つで,出勤と退勤のエンドポイントの切り分けしたいけど・・・どうしよう🤔
退勤用にボタン買おうかな笑(Dashボタン,エンタプライズ用なら今でも売っているみたいです)
さて,動作手順は以下のとおりです。
- Dashボタン押下
- DashボタンはDHCPサーバにIPアドレスを要求
- DHCPサーバはDashボタンにIPアドレス付与
- DashボタンはLAN内にARPリクエストを送信
- MacがARPリクエストを受け取り,MACアドレスがDashボタンのものと一致している場合API Gatewayのエンドポイントにアクセス
- API GatewayをトリガーにLambdaが発火
- Lambda上でGSSのAPIを用いてシートに日付と時刻を出力
ざっとこんな感じです。
4について詳しく説明します。
まず,ARPというのは
IPアドレスに対応するMACアドレス発見するプロトコルです。
これがわかったところで
なぜ,DashボタンがARPリクエストを送信するかについてですが
DashボタンはIPアドレスが付与されたあと,本当にそのIPアドレスをLAN内の他端末が利用していないか確認します。(DHCPを信用していないみたいですね)
そのためにLANにARPリクエストを送信し,IPアドレスに紐づくMACアドレスが存在しないことを確認します。
あとは比較的,APIやクラウド環境に頼り切った実装となっています笑
改めて,クラウドサービスの便利さを感じました!!
クラウド神だ!!!😙
というわけで,今日はこの辺で👋