Kon's DX Lab - Case Study

Day 78 │ Cloud RunでSlackボットが動かないときに見直すべき6つの落とし穴

Published on 2025-06-18

🔬 Case Study Summary
Problem

(ここに課題を記述)

Result

(ここに具体的な成果を記述)


Tech & Process

(ここに採用技術とプロセスを記述) コードを詳しく見る »

こんにちは、こんです🦊

SlackアプリをCloud Runで公開したものの、「なぜか動かない」「Verifiedにならない」「Slackから反応がない」など、最初のつまずきに悩んだ経験はありませんか?

今回は、私が実際にハマったトラブルをもとに、Cloud Run x Slack Bot構築でよくある落とし穴を6つにまとめました。

Slack + Flask + Google Sheets構成でMVPを作っている方には、再現性を上げるヒントになるはずです。


❗トラブルの原因 TOP6

1. app = flask_app を忘れて Cloud Run がエントリポイントを読めない

Flaskアプリを flask_app = Flask(__name__) で定義したら、最後に app = flask_app を忘れず追加しましょう。

flask_app = Flask(__name__)
...
app = flask_app  # Cloud Run用

これを忘れるとCloud Runは"App failed to load" エラーで突然止まります。


2. .env が逆に効かない

現場でよくある効果ないパターン。

.env に設定したのに Cloud Run で動かない...

原因は Cloud Runは.envを読まない ことです。

解決策は:

--set-env-vars を使ってデプロイ
gcloud run deploy workpulse-app \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars SLACK_BOT_TOKEN=xxx,SLACK_SIGNING_SECRET=xxx,SPREADSHEET_ID=xxx

3. Event Subscription URL が /slack/events になっていない

Slack Appで "Verified" が通ったと思ったら、もう一度開い直すと…

なぜか OFF になってる!?!?

この原因は bot eventsの登録欠如 のことが多いです。

Slack API設定で:

  1. Event Subscription 有効

  2. Request URL: /slack/events

  3. Subscribe to bot events に message.im や app_mention を追加

この順序でやって Verified が "ONのまま"になります。


4. Cloud Run の認証設定を OFF にしていない

初期状態では、Cloud Runの最大の防御はこれ。

この URL は IAM 認証が必要です

というエラーが出たら、Cloud Runの設定を見直しましょう:

  1. Cloud Run 設定画面

  2. セキュリティ > 認証

  3. 下方の "IAM を使って認証" を OFF


5. Google Sheetsが書き込めない

Cloud Run側で Sheets API を呼ぼうとしたら:

403: Permission denied

のようなエラーが出る場合。

原因:

  • Cloud Run のサービスアカウントが Sheets を使う許可を持っていない

解決策:

  1. Cloud Runのサービスアカウント (xxx-compute@developer...) に Editor ロールを付与

  2. 書き込み元の Sheets に従い、同じアカウントを編集者として共有


6. Slack App 側で Slash Command が有効になっていない

最後の落とし穴はこれ。

/clockin を打っても "Command not found"

Slack App の Slash Commands 設定で:

  • Command: /clockin

  • Request URL: https://xxxxx.run.app/slack/commands

  • Short Description: 出勤時刻を記録します

これらが投げ端のAppにしっかり連携されていることを確認しましょう


💡 まとめ: 「動かない」は基礎設定の投げ端チェックで解決

Slackボット x Cloud Runはシンプルであるがゆえに、紛尾も多いのが実情。

ランチアッププの前に、以上の落とし穴を一つずつ見直すだけで、何故か動かない問題は解決することが多いです。

次回は、SlackのEvent Subscriptionが動いたり止まったりする問題を解説します。

#Slackボット開発 #CloudRun #Flask #SlackAPI #GoogleSheetsAPI #MVP開発 #DX実験室