2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リアクションエンジニアを自動化しました

Last updated at Posted at 2025-12-07

はじめに

今年のアドカレは、史上最高に盛り上がってます🔥ついに本登録期間が開始しました!参加してくれた皆さんのおかげで、今年のアドカレは、例年以上の熱気に包まれています!カレンダー数、参加者数ともに過去最高を更新中🚀一緒に今年最後のアウトプットを盛り上げていきましょう!

盛り上がっております!

スクリーンショット 2025-12-07 10.40.13.png

Qiitaのトップページで案内されております。

そんな中、盛り下がることをしてしまっておりました。謹んでお詫び申し上げます!

盛り下げることとは!?

ElixirコミュニティのSlackで、#autoracexチャネルを主宰しております。そのチャネルでは下記の記事に書いたように投稿(闘魂)に景気のいい絵文字リアクションをつけて、みんなのアウトプットを褒め称える、次への活力にする仕組みを永らく運用しておりました。

しかし、私が運用していたTime4VPSサーバーの利用料を支払っておらず、9月くらいから止まってしまっておりました。将棋に熱中しすぎていたのかもしれません。このままではアドベントカレンダー2025を私ひとりが盛り下げてしまうかもしれない。そんな危機感を抱きまして、至急対応することにしました。もうアドベントカレンダー2025ははじまっています! はやくしないとアドベントカレンダー2026がはじまってしまいます!

できるだけ運用費を抑えるには?

AWSのサーバーレスアーキテクチャを採用するとほぼ無料、たぶん無料で運用できそうです。

今年はAWS CDKを覚えましたので、それを使います。

Vibe Coding

Vibe Codingにてノリでつくりました。初期プロンプトを公開しておきます。さらしておきます。

相棒は、Codex CLIKiro CLIを使いました。

import os
import random
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler

# ボットトークンとソケットモードハンドラーを使ってアプリを初期化します
app = App(token=os.environ.get("SLACK_BOT_TOKEN"))

@app.event("message")
def handle_message_events(body, logger, client):
    logger.info(body)
    ts = body['event']['ts']
    channel = body['event']['channel']
    icons = ['thumbsup', 'tada', 'rocket']

    client.reactions_add(
        channel=channel,
        name=random.choice(icons),
        timestamp=ts)


# アプリを起動します
if __name__ == "__main__":
    SocketModeHandler(app, os.environ["SLACK_APP_TOKEN"]).start()


相当のSlackアプリケーションをつくりたい。
AWSのサーバーレス構成とするため、HTTPSタイプの通信になると考えている。

- AWSのサーバーレスで動かしたい
- cdkプロジェクトで構成して、Lambdaで動かしたい
- cdkはTypeScriptを採用
- LambdaのランタイムはPython 3.14でもTypeScriptでもよい
- API Gatewayは使用せず、Lambda関数URLをつかうことにする
- 機密情報はSystems ManagerのParameter StoreにSecure stringで保存することを考えている

ソースコード全文

ソースコード全文も全世界に公開しておきます。

LambdaはPythonでつくりました。正確にはGenerative AIsにつくってもらいました。Slackのライブラリは使わずに、Slackの仕様を正確に実装してくれていました。私の要求には何も書いていないのにそのへんは頭に入っているのでしょう。ソラで書いてしまうのはすごいです。

さいごに

一部、私の周辺では、アドベントカレンダーは26記事目からが本番だという声があり、これからもどんどんアドベントカレンダー2025を盛り上げて参りますという所存であります。つまり投稿(闘魂)を続けますという思いの丈を披瀝しているわけでございます。

reaction-manがSlackチャネルを盛り上げること間違いなしです!

スクリーンショット 2025-12-07 10.33.00.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?