【目的】
「【GCP】GAEを使ってみる 1回目」で操作はできたけど、Paasのことをわかっていないのもあり、イメージができなかったので、再度PJを作りなおしてGAEを作ってみた。
【操作】
チュートリアルで作っても、操作をすべて覚えてないので、自分のブログに書き起こして、わからないことは調べたほうがいいと思った。
もう一度プロジェクト作成。
Pythonで作ってチュートリアルとおりでデプロイまで行ける。
PJ作成⇛GAEを構築
このときPythonを選択。
スタンダードかどうかも選択できる。
cloud shelから構築。
1.git clone \ https://github.com/GoogleCloudPlatform/
をやろうとしたら、すでにインストールされていると表示された。
アカウントがt-suzukiなので、PJを変えてもその配下に以前ダウンロードしたものとかが残っているみたい。
2.なので、gitコマンドは無視して勧める。
cd \ python-docs-samples/appengine/standard_python37/hello_world
githubからクローンはできてるので、ディレクトリを移動する。
3.アプリをテストするために以下のコマンドをうつ。
virtualenv --python python3 \ ~/envs/hello_world
virtualenvコマンドはpython開発で使う、仮想環境作成ツール。
アプリをテストするには、まず分離された仮想環境を作成します。
これにより、アプリがシステム上の他の Python アプリケーションと干渉することを防ぎます。
4.新しく作成した仮想環境を有効にします。
source \ ~/envs/hello_world/bin/activate
仮想環境は作成しただけでは有効にならないので、sourceコマンドで有効にする。
5.pip を使用してプロジェクトの依存関係をインストールします。この「Hello World」アプリは Flask のマイクロフレームワークに依存します。
pip install -r requirements.txt
6.最後に、Flask 開発サーバーを使用して Cloud Shell でアプリを実行します。
python main.py
ここまでの作業でCloud Shell 上でテスト画面がみれるようになる。
7.App Engine へのデプロイをするときは、以下をうつ。
gcloud app create
リージョン内にアプリを作成する。
アプリをデプロイするコマンドですが、app.yamlないしappengine-web.xmlがある場所で叩かないと怒られます。
8.以下のコマンドでアプリをデプロイできます
gcloud app deploy app.yaml \ --project \ testclouddatastore-mune
9.サブドメインにアクセスすると起動が確認できる。
プロジェクトを無効にしたいときは、設定から。
プロジェクトを削除するときは、
コンソールの左上にあるナビゲーション メニューで [IAM と管理] に移動します。
IAM と管理者 > [リソースの管理] >[削除]
====
Do you want to continue (Y/n)? y
Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 2 files to Google Cloud Storage ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
↑ここの2 filesが変更したファイルがあがっていることになる、
===
【疑問点1】
多分、おれは無料枠で使ってるので、スタンダード
確認は以下の手順で可能
コンソール画面 > GAE > バージョン >環境
ここに「標準」とあった。だからローカルからは接続できない。
【疑問点2】
GAEの削除、追加作成とかやってみたかったのだけど、できない。
仕組みがわかってないので以下を実施。
https://dev.classmethod.jp/articles/gae-webapp/
GAE作成のところから
gcloud app create --project=***********
つくろうとしたら以下のエラーが出た
ERROR: (gcloud.app.create) The project [***********] already contains an App Engine application in region [us-central]. You can deploy your application using gcloud app deploy
.
エラーの詳細がぐぐってもでてこない。
おそらくもうGAEは立ち上がっててアプリもつくれますよってこと
gcloud app deployを使ってといってる。
Paasの仕組みとしてGoogleの開発環境を使ってて、自分のアカウントですでにGAEを構築したことがあるからこういうことになってるのかと思う。
【疑問点3】
お恥ずかしながら、yamlが何かがよくわからない。
ということで一段落したので、調査の続き。
確かにyamlは以下の中身になっている。
$ sudo find /home/**/python-docs-samples/appengine/ -name ".yaml" -print
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: main.app
YAML YAML Ain’t Markup Language
YAMLのルールに従って書かれた、テキストファイル(中身が文字だけのファイル)のこと
用途はXMLのような汎用のマークアップ言語に近いが、文法はプログラミング言語に近く、プログラムが内部で扱うオブジェクトなどを保存や送受信などのためにデータ化する「シリアライズ」(serialize)のための形式として特に有名である。
これがYamlの公式ドキュメント
https://cloud.google.com/appengine/docs/standard/python/config/appref?hl=ja
App Engine アプリの設定は app.yaml ファイルで構成します。
【感じたこと】
・https://qiita.com/rshibasa/items/6ea3eff7f210153772da
ここもやりたい。削除方法やファイルの編集について書いてある。
・鍵を作成したりしなくてもコンソールからすべていじれるのは楽
・Python以外でも構築をしてみたい。