Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discord Bot 版の技術選定 #1

Open
1ntegrale9 opened this issue Oct 13, 2020 · 12 comments
Open

Discord Bot 版の技術選定 #1

1ntegrale9 opened this issue Oct 13, 2020 · 12 comments
Labels
Spec 仕様について

Comments

@1ntegrale9
Copy link
Member

1ntegrale9 commented Oct 13, 2020

  • DiscordBot
    • discord.py (Bot Frameworkを採用して Extention/Cog を実装)
    • aiohttp (DBやAPIに接続する際に利用)
  • データベース(Bot情報の保存先)
    • Heroku Postgres
      • 無料で1万bot分保存可能
      • $9/month課金で1000万bot分保存可能
  • WebAPI
    • FastAPI (PythonのAPI向けWebフレームワーク)
  • サーバー
    • Heroku (WebAPI用)
    • Botのサーバーは各Botの稼働環境にお任せ
@sizumita
Copy link

#2 (comment)

Fluentd使うと楽になりそうなんですが、Heroku Postgres使うのであればPostgresのほうがいいですかね

@1ntegrale9
Copy link
Member Author

@sizumita
因みに Fluentd ってロガーの役割だと思うんだけど、
データベースとして使用してて参考になる事例ってあるかな?

@1ntegrale9
Copy link
Member Author

Postgres だとタグ情報とか管理するの大変なので、
途中から NoSQL に移行する必要はありそう。
DynamoDB or Firestore かな。

最初から NoSQL でいくかは悩みどころ。

@sizumita
Copy link

Firestoreなら次のバージョンでasyncio対応するのでいいとおもいます
僕firebaseばっかり使ってますがすごいいいですよ

@1ntegrale9
Copy link
Member Author

DB は今のところ WebAPI 経由で操作する想定なので、全て同期処理でやることになりますね

@sizumita
Copy link

よく考えたらfluentd->RDBってのが多いですね、勘違いしてましたw

@sizumita
Copy link

Web APIかー
firebase functionsとか使えばどうかな?とか思ったり。firestore弄りやすいので。

@1ntegrale9
Copy link
Member Author

Cloud Functions かな?
使ったことないのと、ざっと読んでよく分からないので説明求む

@sizumita
Copy link

Cloud Functionsは、JavaScriptやTypeScriptの関数を定義するだけで、HTTPリクエストを受け付けて処理できる機能です。URLが用意されていて、そこにPOSTなりGETすることができます。
HTTPリクエストだとonRequestonCallという二つの設定方法?があって、onRequestはリクエストとレスポンスの普通のHTTPを受け付けますが、onCallはFirebase Authの認証情報を取得できます。
また、Firestoreが更新されたということをフラグにして実行したりもできます。

@sizumita
Copy link

onRequestを使うとREST APIを作ることができますね。そのために使うこともできる仕様らしいです。

@1ntegrale9 1ntegrale9 added the Spec 仕様について label Oct 14, 2020
@1ntegrale9
Copy link
Member Author

WebAPIとして使えるPaaSって感じですね

  • GitHub 上でコード管理できる
  • ローカルで動作確認が簡単
  • 学習コストが低い

ということであれば採用ありかなと思います

@sizumita
Copy link

全部満たしてると思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Spec 仕様について
Projects
None yet
Development

No branches or pull requests

2 participants