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
46
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
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
260
Arm移行タイムアタック
qnighy
0
370
Jakarta EE meets AI
ivargrimstad
0
930
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
230
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
130
cmp.Or に感動した
otakakot
3
300
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
3
1.3k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
1k
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
240
距離関数を極める! / SESSIONS 2024
gam0022
0
310
romajip: 日本の住所CSVデータを活用した英語住所変換ライブラリを作った話
sangunkang
0
1.5k
Better Code Design in PHP
afilina
PRO
0
130
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
243
12k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
How to Ace a Technical Interview
jacobian
276
23k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Invisible Side of Design
smashingmag
298
50k
Thoughts on Productivity
jonyablonski
67
4.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Statistics for Hackers
jakevdp
796
220k
Music & Morning Musume
bryan
46
6.2k
Navigating Team Friction
lara
183
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
24k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
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