フロントエンド何もわからない(その4)
今回は、かなり自分用のメモです。
やりたいこと
- 計算結果のデータをGCP上に貯めたのちに、Vue.jsなどを使ってビジュアライズしたい。
- 自分しか使わない
ソリューション
いろいろ調べた限り、以下が良さそうでした。
構成
ミニマムに作るとき
tornadoなどのpythonサーバで、Vue.jsを用いたhtmlを呼び出す構成にする
python側でデータの処理を行いREST APIを用意し、javascriptで呼び出すもうちょっと頑張るとき
フロントエンドをNuxt.js、バックエンドをflaskなどのpythonサーバという構成にする
やはりpython側にデータの処理を任せる
データ
Google Cloud Storage(以下GCS)に保存し、PythonのCloud Storageクライアントライブラリからアクセスする
(Nuxt.jsでやるといろいろ大変だった)
(参考)
https://googleapis.dev/python/storage/latest/client.html
https://cloud.google.com/storage/docs/reference/libraries#client-libraries-install-pythonローカルでgcloudコマンドで認証できる状況や、Google App Engine内の環境などでは、
デフォルト認証というものがあり自動的にGCSのデータにアクセスができる
(これもNuxt.jsでは効かなかったりした)
(参考)
https://cloud.google.com/docs/authentication/production?hl=ja#finding_credentials_automatically- GCSの他にFireStore, BigQueryなどのデータベースを使う方法も考えられる
配置場所
認証が問題なく通るので、フロントエンド・バックエンドともにローカルで立てるので良いかと思いました。
Web上で構成したい場合には、Google App Engineを使うのが良さそう。
その他
- フロントエンドとバックエンドに分けると、CORSの処理をしなくてはいけない。
flaskでCORSの処理をする場合は、以下のStackOverflowの回答が分かりやすかった https://stackoverflow.com/a/52875875