概要
前回まででイベント API と普通のボットの開発を行いました
これまでは localhost で動作させていましたが永続的に稼働させたい場合はサーバが必要になります
Heroku 上で動かすことができたので今回はその方法を紹介したいと思います
環境
- macOS X 10.13.1
- ruby 2.4.1p111
- slack-ruby-bot 0.10.5
ボットスクリプト
前回から少し改良だけ完了しましょう
トークン情報を環境変数で設定できるように修正します
require 'slack-ruby-bot'
server = SlackRubyBot::Server.new(
token: ENV["TOKEN"],
hook_handlers: {
message: [->(client, data) { puts "メッセージを受信しました" }]
}
)
server.run
Gemfile の作成は前回通り行っておきましょう
これで OK です
heroku 上にアプリを作成する
コマンドでも画面からでも OK です
アプリを作成しましょう
- git init
git commit -m "first commit"
- heroku login
heroku git:remote -a test-bot
今回は test-bot というアプリを作成しました
とりあえず git リモートに heroku を追加するところまでやりましましょう
Procfile を作成する
今回の肝です
Procfile に heroku 上でボットを動作させるためのコマンドを記述します
- vim Procfile
bot: bundle exec ruby bot.rb
作成したらコミットしましょう
git commit -m "add Procfile"
デプロイする
では heroku 上にコードや設定ファイルをデプロイしましょう
- git push heroku master
で push したらトークン用の環境変数を設定します
heroku config set TOKEN=xoxb-111111111111-xxxxxxxxxxxxxxxxxxxxxxxx
web アプリではないので push しただけではデプロイされません
scale コマンドがあるのでそれでデプロイします
- heroku ps:scale bot=1
これでボットが起動するはずです
チャネルに話かけて heroku 上にデプロイしたボットから返事があるか確認してみましょう
最後に
slack-ruby-bot で作成したボットを heroku 上で起動させてみました
他にもコンテナを使うなどいろいろと方法はありますが今回は Procfile を使った方法を紹介しました
0 件のコメント:
コメントを投稿