Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Slack New Platformで作ったBotについて @yabaibuki.dev #2
Search
Ryo Imai
September 29, 2024
Programming
0
67
Slack New Platformで作ったBotについて @yabaibuki.dev #2
https://livesense.connpass.com/event/328856/
Ryo Imai
September 29, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
チームリードになって変わったこと
isaka1022
0
190
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
220
AWS Lambda functions with C# 用の Dev Container Template を作ってみた件
mappie_kochi
0
240
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
200
Ruby on cygwin 2025-02
fd0
0
140
定理証明プラットフォーム lapisla.net
abap34
1
1.7k
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
120
Linux && Docker 研修/Linux && Docker training
forrep
23
4.5k
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
5.1k
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
4
1.3k
Featured
See All Featured
The Invisible Side of Design
smashingmag
299
50k
Bash Introduction
62gerente
610
210k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Being A Developer After 40
akosma
89
590k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Your Own Lightsaber
phodgson
104
6.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Typedesign – Prime Four
hannesfritz
40
2.5k
Transcript
Slack New Platformで 作ったBotについて 2024/09/26 令和最新版 他⼈に⾃慢したいヤバいCI/CD LT会 @ yabaibuki.dev
#2 アルバイト事業部 今井怜 Copyright © Livesense Inc.
0 1 2 3 4 ⾃⼰紹介 Botとデプロイフロー Slack New Platform
実装 ふりかえりと今後 Copyright © Livesense Inc.
⾃⼰紹介 SECTION 0 Copyright © Livesense Inc.
None
0. 自己紹介 • 株式会社リブセンス アルバイト事業部 • マッハバイトのバックエンドエンジニア • 普段はRailsを書いています • 直近はモバイルアプリにも携わっています
• https://github.com/ryo-imai-bit 今井 怜 Copyright © Livesense Inc.
Botとデプロイフロー SECTION 1 Copyright © Livesense Inc.
• Pull Requestの承認をもらう • Staging環境上で動作確認を他エンジニアにやってもらう ◦ Staging環境にデプロイ(タグPush) ◦ 動作確認を依頼するエンジニアを選定 ⬅ ここでBotを使う ◦
Slack上で確認依頼 • 事業部全体への周知とリリース マッハバイトのデプロイ作業フロー 1. Botとデプロイフロー Copyright © Livesense Inc.
• 登録されたユーザーから⼀⼈をランダムに選出する • LambdaにJavaScriptのコードでデプロイ、ホスティング • すごくシンプルな実装 ◦ お休みの⼈がメンションされたり ◦ MTG中とわかっていてもユーザーがメンションされてしまう
SushiBot 1. Botとデプロイフロー Copyright © Livesense Inc.
• 登録されたユーザーから⼀⼈をランダムに選出する • Slack New Platformでホスティング • 追加機能 ◦ ユーザーのフィルタリング機能を追加
▪ ⼊⼒⽂字列をベースに、ユーザーを除外 ◦ 登録ユーザーをDatastoreに⼊れる ▪ ユーザーごとに定常的な休⽇を登録可能に SushiBot 1. Botとデプロイフロー Copyright © Livesense Inc.
Slack New Platform SECTION 2 Copyright © Livesense Inc.
• 2023年4⽉からGAリリース ◦ ベータじゃなくなりました • 機能⾯ ◦ Slack Host ▪
Denoの環境が⽤意され、Deno Slack SDKで書ける ◦ Self Host ▪ Bolt SDKで、JavaScript‧Pythonで書ける 概要 2. Slack New Platform Copyright © Livesense Inc.
• 変更点 ◦ 新しいモジュラーアーキテクチャ ▪ Triggers、WorkFlows、Functions、Datastores ▪ Slack側で抽象化された単位で書ける ◦ 開発体験の向上
◦ セキュアなデプロイ‧データストレージ‧認証 ◦ 柔軟なユーザー体験 ▪ 機能提供できる場所がCanvasなど広がった 概要 2. Slack New Platform Copyright © Livesense Inc.
実装 SECTION 3 Copyright © Livesense Inc.
• Event Triggers ◦ 今回はこれ ◦ アプリのメンションで発⽕させている ◦ 他にも⾊々 •
Link Triggers ◦ リンクをSlack上に貼るとボタンが表⽰され動作が⾏える • Schedule Triggers • Webhook Triggers Triggers 3. 実装 Copyright © Livesense Inc.
• Functionsでフィルターする処理を実装 • メンション時の⼊⼒を利⽤ ユーザーのフィルタリング 3. 実装 Copyright © Livesense
Inc.
• Datastoresにユーザー情報を登録している • 裏側はDynamoDB • Slack提供の型定義を利⽤して、データ定義 ユーザー情報の登録 3. 実装 Copyright
© Livesense Inc.
• ⾮稼働⽇に⾃動でメンション対象から除外 ◦ メンバーによっては⾮稼働⽇が決まっていたりする ◦ Datastoresへのクエリでフィルタ ▪ DynamoDBのFilter expressions Syntaxが使える
Datastoresとフィルター処理 3. 実装 Copyright © Livesense Inc.
3. 実装 Copyright © Livesense Inc.
ふりかえりと今後 SECTION 4 Copyright © Livesense Inc.
• 開発体験の良さ ◦ デバッグが容易 ▪ Slack CLI経由でローカルアプリのデプロイが可能 ◦ 抽象化とTypeScriptの型チェックで⾒通しが⽴ちやすい •
デプロイの容易さ ◦ CLI⼀発で完結 ◦ datastoreもオールインワンで提供される • 柔軟性 ◦ Link Triggerのポータビリティ ◦ CanvasなどLinkが貼れるとこならどこでも使える ふりかえり 4. ふりかえりと今後 Copyright © Livesense Inc.
• デプロイフローのワークフロー化 ◦ 今回のBotは、ランダムアサインのみだが ◦ 本来的には、⼈がやらなくて良いところが⼀連でできると良い • リーチ ◦ 弊社は他業種も含めSlack上で業務上のコミュニケーション
◦ 社内業務フローをWorkflow Builderと組み合わせる ▪ Slack New Platformの柔軟性 ▪ Workflow Builderでカスタマイズしながら発⽕できる 今後のリーチ 4. ふりかえりと今後 Copyright © Livesense Inc.
None
None