Slide 1

Slide 1 text

サーバーレスな技術を使って オフィス業務を改善した話 えが(@ega4432) Serverless LT 初心者向け LT 大会

Slide 2

Slide 2 text

防衛大卒の新卒 3 年目の Z 世代 スクラムマスター、バックエンドエンジニア AWS 、Laravel 、コンテナ、Jamstack 読書、将棋、テニス、筋トレ えが(@ega4432) 2021 ©︎ ega4432 - Built with marp.

Slide 3

Slide 3 text

アジェンダ 1. 今日お話しすること 2. きっかけ・課題 3. 解決するためにやったこと 4. ハマりポイント 5. 解決策 6. まとめ サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 3

Slide 4

Slide 4 text

サーバーレスな技術を使って オフィス業務を改善した話 今日お話しすること 2021 ©︎ ega4432 - Built with marp. 4

Slide 5

Slide 5 text

今日お話しすること Google Apps Script ( GAS ) を使って総務の業務改善をした話と それを行った際のハマりポイント & AWS を使った解決策の紹介 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 5

Slide 6

Slide 6 text

サーバーレスな技術を使って オフィス業務を改善した話 きっかけ・課題 2021 ©︎ ega4432 - Built with marp. 6

Slide 7

Slide 7 text

備品発注のフロー サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 7

Slide 8

Slide 8 text

課題① インターフェース 人によってフォーマットを逸脱してしまう可能性 都度スプレッドシートを探す手間が発生 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 8

Slide 9

Slide 9 text

課題② 二重管理 用途は違うが、同じデータのスプレッドシートが 2 つ存在 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 9

Slide 10

Slide 10 text

課題③ 毎週発生する定型業務 記入用 → 提出用のコピーは手動で運用 個人に依存したタスク サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 10

Slide 11

Slide 11 text

サーバーレスな技術を使って オフィス業務を改善した話 解決するために作ったもの 2021 ©︎ ega4432 - Built with marp. 11

Slide 12

Slide 12 text

全体像 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 12

Slide 13

Slide 13 text

① インターフェースを Slack に Slack をインターフェースにするこ とで業務中にストレスなく使用 スラッシュコマンドで呼び出し 入力モーダル表示 スキーマの統一、バリデーションが 可能に サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 13

Slide 14

Slide 14 text

② 記入用スプレッド シートの廃止 投稿内容の通知 記入者は自身が投稿した 内容を確認できる ログが Slack 上に残る サーバーレスな技術を使って オフィス業務を改善し 2021 ©︎ ega4432 - Built with marp. 14

Slide 15

Slide 15 text

③ 定型業務をバッチ化 状況に応じて送信メッセージを動的 に変更 合計金額の算出やシートのアーカイ ブ、複製なども自動化 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 15

Slide 16

Slide 16 text

サーバーレスな技術を使って オフィス業務を改善した話 ハマりポイント 2021 ©︎ ega4432 - Built with marp. 16

Slide 17

Slide 17 text

ハマりポイント Slack API の 3 秒ルール Slack が HTTP リクエストを投げてから 3 秒以内に HTTP レスポン スを受け取らないとタイムアウトになる。 GAS は処理途中でレスポンスを返してしまうと後続の処理は実行さ れない。 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 17

Slide 18

Slide 18 text

サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 18

Slide 19

Slide 19 text

サーバーレスな技術を使って オフィス業務を改善した話 解決策 2021 ©︎ ega4432 - Built with marp. 19

Slide 20

Slide 20 text

解決策 Slack 公式 Bolt フレームワーク Slack API を使いやすくするための Node.js 製フレームワーク。 ack() という関数をサポートしており、HTTP レスポンス 200 を返 しつつ後続の処理も実行可能。 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 20

Slide 21

Slide 21 text

Example Code // モーダルの回答を送信した時の処理 app.view('hoge', async ({ ack, view }) => { // この時点で HTTP 200 を返す await ack(); // 後続する重たい処理を非同期実行 await heavyJob(); }); サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 21

Slide 22

Slide 22 text

AWS に乗せる API Gateway + Lambda で API 化 構築には Serverless Framework を使用 サーバーレスな技術を使って オフィス業務を改 2021 ©︎ ega4432 - Built with marp. 22

Slide 23

Slide 23 text

最終的な構成 サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 23

Slide 24

Slide 24 text

サーバーレスな技術を使って オフィス業務を改善した話 まとめ 2021 ©︎ ega4432 - Built with marp. 24

Slide 25

Slide 25 text

まとめ 身の回りの課題をどう技術で解決できるか考えるのって楽しい! 不定期な処理、何か小さく始める際サーバーレスは相性が良い Slack bot を実装する際は 3 秒ルールに気をつけよう! Bolt がソリューションを提供してくれている サーバーレスな技術を使って オフィス業務を改善した話 2021 ©︎ ega4432 - Built with marp. 25

Slide 26

Slide 26 text

サーバーレスな技術を使って オフィス業務を改善した話 ご静聴ありがとうございました 2021 ©︎ ega4432 - Built with marp. 26