
2025.02.18
「売上をスケールする」AIの使い道とは アルペンが挑む、kintone×生成AIの接客データ活用法
Serverless×Slackでアプリを作ってみた話(全1記事)
リンクをコピー
記事をブックマーク
坂部健一氏:最後にLTというかたちで参加させていただきます。余興みたいなかたちで聞いていただければと思います。「Serverless×Slackでアプリを作ってみた話」を発表させていただきます。よろしくお願いします。
まず自己紹介をさせてください。
坂部健一と申します。ネット上ではsaken649と名乗っていることが多いです。26歳、エンジニア歴3年半のまだまだクラウド勉強中のエンジニアです。オープンストリームという会社でここ1年くらいずっとC#を書くような仕事をしておりました。
趣味でちょっと作曲をやっています。クラスメソッドさんの広報キャラクターの「めそ子」というキャラクターがいるんですが、歌手デビューするということで。おめでとうございます。
(会場笑)
楽曲コンテストということで、デビュー曲を募集していたというのがありまして、私の作った曲が採用されて、めそ子のデビュー曲になりました。
(会場拍手)
発表というか発売されてないんですけれども(注:2019年6月2日現在、配信済み)、発売された暁には、この曲名がいかにもAWSな感じの曲https://creofuga.net/audios/154540( 『Future Method ~Amazing World Symphony~』)をぜひよろしくお願いします。
今のは閑話なんですが、ここから本題です。ServerlessとSlackで、アプリのつもりだったんですけど、Botを作ってみました。
どんなBotかと申しますと、例えば変数名とかメソッド名の命名に困ったときに、「ユーザー名を取得する」というような感じで日本語で問い合わせをすると、右側のようにgetUsernameをローワーキャメルケースで返してみたり。例えばget以外にも単語ごとに、fetchとかそういった候補がありますよといったような提案をしてくれるBotになってます。
デモをしてみたいと思います。
さっきローワーキャメルだったのでスネークケースでやってみます。「ユーザーを更新する」とやると、このようにスネークケースでupdate_userと返ってくるというような、ちょっとしたBotを作ってみました。
どのような技術で実現したかと言うと、Cloud Functions for Firebaseの上でNode.jsとExpressを動かしています。英語の単語を翻訳する部分はcodicというサービスのAPIを使って実現をしております。使ってみた所感としまして、ちょっとしたBotのバックエンドにFirebaseはアリかもしれないと思いました。
まず業務の中で変数名とか命名の大喜利が開催されることが多くて、そんなときに命名を提案してくれるようなBotがあったらいいなと思ったんですが、わざわざそのためにサーバーを作って置いておくというのはちょっと嫌なので、思いつきをサーバー管理せずにオンライン稼働できるようなものとして、ちょっとFirebaseを考えてみました。
Node.jsのスクリプトを書いてコマンド一発でデプロイしてすぐ動いちゃうので、非常に手軽だなと思ったところです。
今までAWSとかも触ってきた中で動かすまでには一苦労でしたが、そういったこともなかったのが非常によかったと思っています。
Slackのイベントを投げる先のエンドポイントの設定もFirebaseのお作法ももちろんあるんですけど、Expressベースで気軽に適当にサクッと書いてもわりと動いてしまうというのがけっこういいなと思いました。
クラウドなんですけれども、ローカルで開発がほぼ完結してしまうというのが大きな特徴じゃないかなと思っております。ローカルでCloud Functionsを再現するエミュレーターが存在しまして、それをngrokというような固定URLから特定のポートにポートフォワードするようなサービスと連携すると、だいたいローカルだけで開発が済んじゃいます。
「クラウドなのにどうしてローカルで全部やってるんだろう?」という感じはありましたが、そういったことも実現できてしまいます。今回Cloud Functionsを使いましたが、それ以外にもFirestoreやAuthenticationのようなサービスでもローカルのエミュレーターから普通に呼べます。動確のためにわざわざデプロイがいらないというところで、気軽に作るにはすごくいいなと思いました。
お金の話です。基本的にはFirebaseは無料でけっこう使えるなと思いました。思いつきを気軽に稼働させるにはこれ以上ないくらい強い味方だと思います。
今回だとcodicのように、Googleの外と通信をするには若干課金しないといけません。従量制のプランもありまして、どうぜたいした規模じゃないので従量制でもたいしてお金はかかっていません。今日までのところでもぜんぜん請求はきてませんでした。
環境変数まわりなど、ちょっとしたハマりポイントは確かにあります。
Node.jsをお使いの方ならわかると思うんですけれども、process.envというのを環境変数で引っ張れるんですが、それが取れなくて「なんだこれは?」となったところで、Firebaseの作法に則ればそれも解決できます。
要はドキュメントにそのへんはちゃんと書いてありました。Bot程度を作るのであればドキュメントだけで解決するというのは非常に気軽に使えるところだと思います。
ちょっと駆け足になってしまったんですが、総括としましては、思いつきでオンライン稼働させやすい。
ローカルからだいたい動かせちゃうのでスピーディーに開発がしやすい。基本的には無料でできて、ちょっとした課金をすれば外部との通信もできる。そしてハマるポイントはあるんですけれども、だいたいドキュメントで解決する。このあたりが気軽にBotを動かしやすい要因であって、Firebaseが選べるんじゃないかなと思います。
さっきデモしたNameThinkingというちょっとしたBotをGitHubに置いておきましたので、ご興味ある方はこちらにアクセスしてみてください。業務をちょっとだけ楽にするかもしれないSlack BotをFirebaseで。そんなこともServerlessの事始めとしてやってみるのはいかがでしょうか。
ご静聴ありがとうございました。
(会場拍手)
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
第20回エクゼクティブメンターイベント「今、「ひと」と組織が共創する〜働き方の未来へ」
2024.12.07 - 2024.12.07