Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバーレスな技術を使ってオフィス業務を改善した話/Improvement office operations using Serverless technology

ega4432
July 12, 2021

サーバーレスな技術を使ってオフィス業務を改善した話/Improvement office operations using Serverless technology

ega4432

July 12, 2021
Tweet

More Decks by ega4432

Other Decks in Technology

Transcript

  1. サーバーレスな技術を使って
    オフィス業務を改善した話
    えが(@ega4432)

    Serverless LT
    初心者向け LT
    大会

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 今日お話しすること
    Google Apps Script ( GAS )
    を使って総務の業務改善をした話と


    それを行った際のハマりポイント
    & AWS
    を使った解決策の紹介
    サーバーレスな技術を使って オフィス業務を改善した話
    2021 ©︎ ega4432 - Built with marp. 5

    View Slide

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

    View Slide

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

    View Slide

  8. 課題① インターフェース
    人によってフォーマットを逸脱してしまう可能性
    都度スプレッドシートを探す手間が発生

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

    View Slide

  9. 課題② 二重管理
    用途は違うが、同じデータのスプレッドシートが 2
    つ存在

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

    View Slide

  10. 課題③ 毎週発生する定型業務
    記入用 →
    提出用のコピーは手動で運用
    個人に依存したタスク

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

    View Slide

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

    View Slide

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

    View Slide

  13. ① インターフェースを
    Slack

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  17. ハマりポイント
    Slack API

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. AWS
    に乗せる
    API Gateway + Lambda
    で API

    構築には Serverless
    Framework
    を使用
    サーバーレスな技術を使って オフィス業務を改
    2021 ©︎ ega4432 - Built with marp. 22

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide