Unubo はサービス終了したようです。(2020/06/13 追記)
先日paiza開発日誌で紹介されていたUnuboを使って簡単なサービスをデプロイしてみました。
このUnubo、まだ日本では全然広まっていないようですが、完全無料で「1 GB RAM, 1 CPU, and 500 MB storage」のサーバーを無料で複数利用できてめっちゃ便利です。
今後有料版のプランもリリースされていくようです(公式Twitterより)。
とりあえず今回はサンプルのflaskアプリケーションをデプロイしてみましょう。
#構成
Unubo Apps Python
Python 3.7
Flask 0.12
手順
Unubo App の作成
RegionはとりあえずAsiaで。Data storeのドキュメントに
Please not that databases can only be accessed from apps within the same region.
という記述があったので、DBも使うつもりの方はRegionを合わせましょう。
デプロイ設定
Repository
RepositoryのCONNECTからGitHubのデプロイ用リポジトリを選択しましょう。Deployment settings(Commands)
アプリの起動用のコマンドを記述しましょう。
後述しますが、Unuboのサンプルコード通りとするなら
python app.py
gunicornを使用するなら
gunicorn app:app
としておきましょう。
Secrets
ここに環境変数をセットできます。
また、コード中で呼び出す際は os.environ.get を使用すればおkです。
SECRET = os.environ.get('SECRET') # 'SECRET_VALUE'
SECRETS = json.loads(os.environ.get('SECRETS')) # ディクショナリで取得できる
Domains と Monitor は使用していませんm(._.)m
コード
公式のドキュメントが、flaskのサンプルコードを公開してくれています。
import os
from flask import Flask, render_template
app = Flask(__name__)
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
@app.route('/')
def hello():
# return 'Welcome to Python on Unubo Cloud'
return render_template('index.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=port)
Flask==0.12
コードをGitHubにpushして、Deployボタンを押下すれば{app名}.unubo.appにデプロイされます。
試しに作ったもの
IPAカウントダウン
IPA試験までの時間をカウントダウンをしています。
デザイン手抜きです(UIKit使い方よくわかってない)。
また実装したAPIをGoogleAppsScriptから叩いて、IPAカウントダウンbotが7時台、12時台、19時台にカウントダウンツイートをするようにしています。
感想
デプロイでそんなにつまることもなかったしUIもすっきりしていて使いやすいです。
これを無料で使えるのは素晴らしい。
公式Twitterがエゴサしっかりしていて、めっちゃリプライくれるのも好感もてます。