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
SwiftUI Viewの責務分離
elmetal
PRO
0
140
Domain-Driven Transformation
hschwentner
2
1.9k
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
120
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
660
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
890
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
5
3.8k
AWS Lambda functions with C# 用の Dev Container Template を作ってみた件
mappie_kochi
0
240
時計仕掛けのCompose
mkeeda
1
280
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
170
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
100
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
11
1.8k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
29
4.6k
Fireside Chat
paigeccino
34
3.2k
Typedesign – Prime Four
hannesfritz
40
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Designing Experiences People Love
moore
139
23k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Scaling GitHub
holman
459
140k
Practical Orchestrator
shlominoach
186
10k
Adopting Sorbet at Scale
ufuk
74
9.2k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
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