魔法の世紀の片鱗(勤怠打刻を頑張らない話)

Tei1988です。 前回のSpeeeKaigiでは、最寄り駅検索APIをつくってみた話を発表しました。

今回のSpeeeKaigiは、魔法の世紀の片鱗という題で、勤怠打刻を頑張らない話をしました。(SpeeeKaigiについてはこちら。)

落合陽一さんの書かれた魔法の世紀という本の冒頭付近に、カームテクノロジーという言葉が出てきます。 このカームテクノロジーは、人にテクノロジーを使っていることを意識させないようなテクノロジーという意味合いだそうです。

今は勤怠を正しく付けるために人間が打刻を頑張っていることが多いと思うのですが、そこにカームテクノロジーが加わるとどう変わるんだろうかというのが、今回の発表のネタです。

※ただ、もっと話を進めていくとそもそも出社とか勤怠とかみたいな話までいってしまいそうなので、勤怠を正しく付けることにフォーカスを当てました。

発表資料は以下になります。

speakerdeck.com

質疑では「会社に近づいただけで出社ってどうなの?」であったり、「外出から直帰するような人はどうするのか?」といった、出社/退社の判定方法に関して質問をいただきました。 今回はGPSで簡易的に行ったので、精度の問題や会社周辺に居ない場合などの例外には対応できませんでしたが、人が打刻を頑張らない方向で、より適切な判定方法があれば、そちらを使いたいです。

感想

今回初めてAWSのAPI Gateway, Step Functions, Lambdaを使ったのですがとても扱いやすく、良いなぁ、と思いました。 Serverlessも扱いやすさの印象にかなり貢献してそうです。

当初は、Serverlessだけを使ってAPI Gateway + Lambdaで行おうと考えていました。 ただ、出社APIと退社APIで同じ処理を行う場所があり、それを処理毎にLambdaを分けたかったのですが、Lambda間の連携がちょっとややこしかったので諦めて、Step Functionsを導入しました。 今となってはですが、まだ要らないレベルの分割だったかもしれないです。

Step Functionsを使うことにしたので、API GatewayからStep Functionsを呼ぶことになりました。が、API GatewayからStep Functionsを呼ぶ際に、大きく2つハマってしまいました。

一つ目は、そもそもAPI GatewayからStep Functionsの呼び方がわからない!😨です。

LambdaはAPI Gatewayでも別枠でサポートされていたりして直ぐ分かったのと、Serverlessの設定で記述できたんで、とても楽だったんですが、Step Functionsは見つけられなかったんですよね…。

そんなときに、How can i call AWS Step Functions by API Gateway?がとても参考になり、無事設定ができました。

二つ目は、テスト環境ではバッチリ動くのに本番にデプロイしたら動かない!😨です。

原因は単純に設定ミスでした。API Gateway側の設定で「アクション」というパラメータに設定すべき値を間違えていました。 ただ、テスト実行の場合、この「アクション」を見ていないようで、その値が間違っていても実行されちゃっていました。 テストで動いて本番で動かないという…。 にっちもさっちも行かなくなり、再度上記ページを読み直したところ、間違いに気づき、無事本番でも動くようになりました。

前回のSpeeeKaigi同様、賞はもらえませんでした😨が、とても良い場でした🌸。