経緯
業務でPythonとGCPの知識が必要になるのでチュートリアルなどしてみたものの、結局は実戦(実際に動くものを本番(=インターネット上へ)リリースする)が一番力がつくので、やってみることにする。
業務では、GolangやAngularも必要そうだけど、Golangは2年くらい業務経験あるので優先度下げる。
Angularはチュートリアルを多少やったものの、機能が多く、Python、GCPの勉強と同時並行が難しそうなので、ある程度、Python+GCPの開発が軌道に乗った後でトライする。
環境
- 開発端末:Linux(Ubuntu 17.10)
- 言語:Python(v3.6.3)※ pip は v9.0.1
- フレームワーク:Flask(v1.0.2)
<前提>
- GCPはアカウント取得済み。
- Google Cloud SDK取得・認証済み。
今日のお題
- Webサイトの題材を決める。
- Python3で単純にWebページ表示するくらいやってみる。
- GCP上(GAE)にデプロイしてみる。
■Webサイトの題材を決める。
前々から「いろんなエンジニアの本棚が見てみたい」と思っていたので、Webサイト名は「本棚自慢」。
ちゃんと検討・設計してから作るというより、とりあえず作って少しずつ拡張・改善。
自分の本棚の写真を撮って投稿してもらう。そしてそれを一覧に表示する。
まずはそれまでを当面の目標にする。
■Python3で単純にWebページ表示するくらいやってみる。
以下ソースで実施済み。
https://github.com/sky0621/bicherregal-py/tree/4690e65ae98b243ac38db257466326a711861384
【参考】
http://flask.pocoo.org/docs/1.0/
■GCP上(GAE)にデプロイしてみる。
↓のようなYAMLを用意(Pythonプロジェクト直下)すると、作ったPythonのWebアプリがGAE上で起動してくれる。
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
上記YAMLが存在するパスで以下実行すると、GCP上にデプロイされる。
$ gcloud app deploy
Services to deploy:
〜
Do you want to continue (Y/n)? y
〜
けっこう時間がかかる
〜
DONE
〜
デプロイ結果の確認。
$ gcloud app browse
★「xxxxxxxx」の部分には、自分のGCPプロジェクトのIDが入る。
【参考】
https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml?authuser=1&hl=ja
https://cloud.google.com/appengine/docs/flexible/python/quickstart?authuser=1&hl=ja