日曜プログラミング

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

IBM Bluemixに設置してみよう(後編) : discord bot

前回・前々回に引き続き、Bluemixにdiscord botを置いていきます。

gelehrtecrest.hatenablog.com


今回作成したコードは、後日 github上に公開する予定です。本記事では、メモ程度とさせてください。

1. IBM Bluemixでpythonアプリを作成する。

ダッシュボードを開きます。
f:id:gelehrtecrest:20170315173407p:plain

pythonアプリを選択します。
f:id:gelehrtecrest:20170315173353p:plain

f:id:gelehrtecrest:20170315173510p:plain

2. pythonアプリのサンプルコードを取得

git からサンプルコードを取得

git clone https://github.com/IBM-Bluemix/get-started-python

デフォルトではFlaskが動くようになっているので、いろいろ設定を上書きします。

まず、前編で作ったコードを bot.py として cloneしてきたフォルダにコピー

次に、requirements.txtを記述。pip freezeを使って書く場合

pip freeze -l > requirements.txt

で良いとおもいます。

起動スクリプト run.shを書きます。bash経由で bot.pyを実行するだけです。

#!/bin/bash
python bot.py &

discord.pyはpython3.4.2以降による対応なので、pythonのバージョンを指定します。以下のドキュメントが参考になります。
https://console.ng.bluemix.net/docs/runtimes/python/index.html#python_runtime

具体的にはこのように書きます。

python-3.5.1

最後にmanifest.ymlを書きます。
commandでbashを動かし、起動スクリプト run.shを実行させます。
memoryとかはもっと少なくていいかと思います。今回はテストです。

applications:
 - name: gelebotff14
   random-route: true
   memory: 256M
   command: bash run.sh
   path: .

3. cfコマンドをインストー
私の環境にはcfコマンドが入っていませんでした。Bluemixではcfコマンドによるアップロードができるので、cfコマンドをインストールします。

brew tap cloudfoundry/tap
brew install cf-cli

4. cfコマンドによるアップロード

まず環境を設定

cf api https://api.ng.bluemix.net
cf login

次にアップロードですが、ここを私は迷っています。
とりあえず、以下でアップロードしました。
(gelebotff14はbot名です。任意の名前に変更してください)

cf push gelebotff14 --health-check-type=none

何をしたかというと、health-check-typeをnoneにしました。というのも、この設定なしだと、health-checkで起動失敗するからです。

cfコマンドを入力後

1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 1 個のインスタンスが実行中です
アプリが開始されました
OK

などと表示されたら、起動できているはずです。

botトークンをローカルで動かした時と同じにしている場合、すでに接続できています。
違うものにする場合、前々回の記事を参考にして、botを再設定してください。
gelehrtecrest.hatenablog.com


予定:
まだかなり理解していない部分があります。もう少し調査します。
そのあと、githubなどにソースコードを公開する予定です。