Node.js
AWS
lambda
IoT
awsIoT

AWS IoT Enterprise Buttonで気軽に当日有給休暇を取得するボタンを作った

概要

先日国内Amazonでも購入できるようになった AWS IoT Enterprise Buttonを使って遊んでみました。実際に触ってみるとカンタンにLambda関数を実行させることができるようになっており、無限の可能性を実感しました。

背景・目的

JPEGイメージ-8D6A7C128636-1.jpeg

朝、ベッドで目がさめると

あぁ、今日会社(バイト)行きたくないな、、

って唐突に思うことってありませんか?(僕は多々あります)。

「今日突然有給取得の連絡するのは申し訳ないな、、」って思うのが良心をもった皆様のことだとおもいます。

休みたいけど、いざ勤怠連絡メール・LINEを書くとなると心が重い、、、

「当日の勤怠連絡」って、結構心理的な負荷が高いものだと思うんです。

しかし「有給取得」は僕たち労働者の権利であり、その権利がある限りそれを邪魔することはできません。

邪魔をしているのは、良心に訴えかけるようなこすい戦略であなたを会社にしばる「会社」なのです。

今回はそんな

「当日の勤怠連絡」の心理的ハードルを下げる

そんな魔法のボタンをAWS IoT Enterprise Buttonを使って実現しました。

コンセプトムービー

とりあえず作ってみたので動き方はこちらの動画を参照してください。


Lambdaで実行させるnodejsのスクリプト

ソースコード自体はgithubに上げてあります。

今回はSlackの#kintai部屋への投稿を想定しているため事前にSlackのTokenを取得しておく必要があります。

'use strict'

const moment = require('moment')
const {WebClient} = require('@slack/client')

// 取得したSlackのTOKEN
const token = process.env.SLACK_TOKEN

const web = new WebClient(token)

// 投稿先の部屋ID
const conversationId = process.env.ROOM_ID

exports.handler = async (event) => {
    const today = moment().format('MM月DD日')

    const text = `
① 早乙女まどか
② ${today} 全休
③ 有給休暇の取得のため

特別/緊急なケース以外は対応できません。
お忙しい中ご迷惑をおかけしますが、よろしくお願いします。
`
    // lambda自体のエラー処理機構に乗せるためtry catchしない
    await web.chat.postMessage(
        {channel: conversationId, text})
}

まとめ

  • セットアップはアプリで!
  • 遊び方は無限大!
  • 「ワンアクション性・気軽さ」がアイディアの種に!
  • 普段のちょっとした作業の効率化に向いているかも!

最初のアクティベーションだけ戸惑いました

aws側のLambda関数の設定画面から登録を行っていくとWeb上で登録するようにいわれるのですが、実はそこからはできなくなっており専用のアプリを使う必要があります。

それ以外はすんなりと設定でき、1時間もかからずにスクリプトを実行できるようになりました。今回は単純にSlackへの投稿というアクションを設定しましたが、色々と妄想が広がる、そんなボタンが AWS IoT Enterprise Buttonだと実感しました。

難しい操作ではなく、普段のちょっとした動作をボタンを押すというカンタンな動作にまとめたり、ボタン自体の持つ「ワンアクション性・気軽さ」を主軸にアイディアを考えていくと面白いものが生まれるかもしれませんね。

これからも何か面白いアイディアが浮かんだら作ってみようと思います。

参考