概要
Heroku の無料枠を使っている場合デプロイしたアプリに 30 分アクセスがないとアプリはスリープしてしまいます
スリープした状態でアクセスが来るとアプリは起動するのですが、いちいちブラウザなどで URL にアクセスするのは面倒です
今回は、そんなスリープしてしまった Heroku アプリを Slack から起こす方法を紹介します
環境
- Slack 2016/07/14 時点
- Heroku 2016/07/14 時点
Slack の Slash Commands を作成する
Slash Commands は任意の URL に GET or POST のリクエストを送信することができる機能です
これを使って Heroku アプリを起こすようにしてみます
まず、Custom Integrations に Slash Commands を追加します
まだない場合は Apps Directory から検索して Slash Commands を追加してください
追加できたら Slash Commands を作成しましょう
作成の際のポイントは以下の通りです
- Integration Settings の URL を Heroku 上にデプロイしたアプリに設定する
サンプルとしては以下の通りです
Method はデプロイした Heroku アプリに合わせて変更してください
Command は好きなコマンドを設定してください
要するに Slash Command を実行したときに Heroku アプリに起こす用のリクエストを送信するだけです
あとはお好みに合わせて「Customize Icon」や「Autocomplete help text」を設定してください
動作確認
では、作成した Slash Command で Heroku アプリを起こしてみましょう
という感じでアプリのルートにアクセスしたときのレスポンスが返ってくれば OK です
( 今回のアプリがリクエスト情報をダンプするアプリだったのでトークンやらなんやらがいろいろで出てしまっていたのでモザイクにしました )
Heroku 側の起動がすぐには終わらなく Slash Command がタイムアウトした場合でもリクエストは Heroku 側に行っているので 2 回目のアクセスではちゃんとレスポンスが返ってくると思います
最後に
Slack の Slash Command を使ってアクセス Heroku のアプリを起こしてみました
まぁ要するにアクセスしているだけなのですが、いちいち URL を確認したりするのが面倒な場合にはいいかもしれません
特にこれが必要になるのは cron を使った Hubot かもしれません
Heroku 上でスリープしてしまった Hubot は cron も回りません
なので、アクセスする必要があるのですが Slash Command で簡単に起こせるようになっているとちょっと便利かもしれません
0 件のコメント:
コメントを投稿