GAEにおけるPython開発環境の設定
参考:https://cloud.google.com/python/setup
Python 2 と Python 3 の最新バージョンのインストール
Python のウェブサイトから Python 2 と Python 3 両方の最新バージョンのWindowsインストーラをダウンロードし、インストールします。
【Python2をインストールする理由】Cloud SDK は Python で作成されています。アプリの開発に使用する Python のバージョンにかかわらず、Cloud SDK は Python 2.7.9 以降が必要になります。ただし、Python 3 virtualenv を使用している場合でも、Cloud SDK が Python 2 のインストールを検出し、使用できます。
virtualenv のインストールと使用
virtualenvをインストールします。
py -3 -m pip install --upgrade virtualenv
次のコマンドで、virtualenvのバージョンを確認できます。
py -3 -m virtualenv --version
virtualenv がインストールされたら、プロジェクト内に仮想環境を作成できます。次の virtualenv により、venv フォルダに Python のインストール全体の仮想コピーを作成します。
※ Python 3.7をC:\Python37にインストールしている場合、つぎのようにpython.exeのパスを指定します。
cd <my-prpject-folder>
py -3 -m virtualenv --python "C:\Python37\python.exe" venv
コピーが作成されたら、次のように仮想環境を有効化して、Python の virtualenv のパスを shell に通します。
.\venv\Scripts\activate
仮想環境を有効化にすると、他のプロジェクトやグローバルの Python インストールに影響を与えずにパッケージをインストールできます。
たとえば、pipコマンドにパスが通っており、この仮想環境にgoogle-cloud-storageをインストールできます。
pip install google-cloud-storage
仮想環境の使用をやめてグローバル Python に戻る場合は、次のコマンドで無効化できます。
deactivate
Cloud SDK をインストールして、App Engine 用に GCP プロジェクトを設定
参考:https://cloud.google.com/appengine/docs/standard/python3/quickstart
Cloud SDK のインストール
Google Cloud SDK のドキュメントから、最新のCloud SDK のインストーラをダウンロードし、インストールします。
※ gcloud init を実行する前に、GCPでプロジェクトを事前に作成しておくことをお勧めします。
インストールが完了したら、次のオプションを受け入れます。
- Cloud SDK シェルを起動する
- gcloud init を実行する
プロジェクトの確認と設定
プロジェクトが作成されたことを確認します。
gcloud projects describe [YOUR_PROJECT_ID]
次のようなプロジェクトの詳細が表示されます。
createTime: year-month-hour
lifecycleState: ACTIVE
name: project-name
parent:
id: '433637338589'
type: organization
projectId: project-name-id
projectNumber: 499227785679
プロジェクトで App Engine アプリを初期化し、そのリージョンを選択します。
gcloud app create --project=[YOUR_PROJECT_ID]
プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択します。
※アプリのリージョンを設定した後で変更することはできません。
ここで、プロジェクトで課金が有効になっていることを確認します。アプリケーションを App Engine にデプロイするには、課金アカウントをプロジェクトにリンクする必要があります。
課金を有効にします。
Python 3.7 用の App Engine 拡張機能
次のコマンドを実行して、Python 3.7 用の App Engine 拡張機能が含まれる gcloud コンポーネントをインストールします。
※コマンドプロンプトを管理者権限で実行している必要があります。
gcloud components install app-engine-python
Hello World サンプルアプリ
Gitをインストール
Hello World アプリをダウンロードするために、Gitをダウンロードし、インストールします。
Hello World アプリをダウンロードする
Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。
cd C:\workgit
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
ローカルマシンで Hello World を実行する
プロジェクトの外部のディレクトリにvirtualenvで Python 仮想環境を作成し、それを有効化します。
cd C:\workgit
mkdir myenv
cd myenv
py -3 -m virtualenv --python "C:\Python37\python.exe" venv
.\venv\Scripts\activate
プロジェクト ディレクトリに移動し、依存関係をインストールします。
cd C:\workgit\python-docs-samples/appengine/standard_python37/hello_world
pip install -r requirements.txt
アプリケーションを実行します。
python main.py
ウェブブラウザに次のアドレスを入力します。
http://localhost:8080
Ctrl+C キーを押してアプリケーションを終了します。
仮想環境の使用をやめてグローバル Python に戻る場合は、次のコマンドで無効化できます。
deactivate
App Engine にデプロイして実行する
App Engine スタンダード環境にデプロイする
standard_python37/hello_world ディレクトリから次のコマンドを実行して、Hello World アプリをデプロイします。
cd C:\workgit\python-docs-samples/appengine/standard_python37/hello_world
gcloud app deploy
デプロイ時のエラーの対処
APIを有効にする旨の指示(エラー)が出たので、指示に従って、有効にします。
再度、実行するとデプロイに成功します。
クリーンアップ
課金されないようにするには、GCP プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止します。
- GCP Console で [プロジェクト] ページに移動します。プロジェクト ページに移動
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
まとめ
- Python2とPython3をインストールし、仮想環境(virtualenv)を設定しました。
- Google Cloud SDK をインストールし、Python環境を構築しました。
- 仮想環境を有効化し、Python3.7とFlaskとで、アプリ「Hello World!」をローカルで実行しました。
- ローカル環境で実行したアプリをデプロイし、GAE上で実行しました。
- 課金されないように作成したGCPプロジェクトを削除しました。