Google Cloud ShellでApp Engine DevServerを動かす


Google Cloud Shell?

Cloud ShellはDevelopers Consoleの機能の1つで、Debian-based LinuxのShell環境を貸してくれる機能です。

gcloud sdkを始めとして、色んなtoolを最初からインストールしてくれているので、軽く何か試そうという時に便利な環境です。

DiskもUser毎に5GB使えるようになっているので、git cloneしたり、Cloud StorageやBigQueryのExport結果を、Diskに保存することができます。

ただ、$HOME以外はCloud Shellを再起動すると初期化されるので、注意してください。

何がインストールされているかは、Available toolsに書いてあります。

適当に抜粋してみます。


Available tools


  • bash

  • sh

  • Google App Engine SDK

  • Google Cloud SDK

  • Emacs

  • Vim

  • Nano

  • Gradle

  • Make

  • Maven

  • npm

  • nvm

  • pip

  • Git

  • Mercurial

  • Docker

  • iPython

  • MySQL client

  • gRPC compiler


Language support


  • Java

  • Go

  • Python

  • Node.js

  • Ruby

  • PHP

GCP上で開発する時に使いそうなものは、それなりに入っている感じです。

追加でインストールとかもできますが、$HOME以外はクリアされてしまうので、apt-getとかでインストールすると、Cloud Shellを再起動すると消えてしまいます。


Quickstart

Developers Consoleを開いて、ぽちっとボタンを押せば完了です

Home_-_cp300demo1_and_Google_Cloud_ShellでApp_Engine_DevServerを動かす.png


Price

2016年中は無料で提供できるらしいです。

こういう機能はスパマーとの兼ね合いで料金が変わったりすることがあるので、2017年も無料で使えるように祈りましょう。


Web Preview

Cloud ShellにはWeb Previewという機能があります。

これは、Cloud Shell上でWeb Serverを立ちあげて、アクセスすることができる機能です。

試しにApp EngineのDev Serverを立ち上げてみます。


Python

まず、github上にあるApp Engineのサンプルプロジェクトをcloneします。

git clone https://github.com/GoogleCloudPlatformTraining/cp100-appengine-memcache-python.git

後は、app.yamlがある場所で、dev_appserver.pyを実行すれば、8080portでDev Serverが立ち上がります。

cd cp100-appengine-memcache-python

dev_appserver.py .

後は、Cloud Shellの左上にあるボタンをクリックして、Preview on port 8080を選べばブラウザで表示することができます。

Home_-_GCPUG_and_Google_Cloud_ShellでApp_Engine_DevServerを動かす.png

https___8080-dot-1978286-dot-devshell_appspot_com__authuser_0.png


Java

Javaも基本的に流れは同じはずなのですが、なぜかブラウザでの表示がうまくできませんでした。

サンプルプロジェクトをgit clone

git clone https://github.com/GoogleCloudPlatformTraining/cp100-appengine-memcache-java.git

mavenでDev Serverを起動

cd cp100-appengine-memcache-java

mvn appengine:devserver

Cloud Shellの左上にあるボタンをクリックして、Preview on port 8080を選べばブラウザで表示するとエラー・・・。

Home_-_GCPUG.png

https___8080-dot-1978286-dot-devshell_appspot_com__authuser_0_error.png

上記はmavenでやってますが、App Engine SDKにあるdev_appserver.shでやるとどうかな?と思い試そうとしましたが、command not found. App Engine Java SDKは入っているのですが、dev_appserver.shはハブられているよう・・・。


おまけ

もちろん、App Engineのデプロイもできます。


Python

cd cp100-appengine-memcache-python

appcfg.py -A cp300demo1 -V example update . --noauth_local_webserver


Java

デプロイは普通にJavaもできます。

cp300-gae-memcache-java/src/main/webapp/WEB-INF/appengine-web.xml<application>を自分のGCP Projectのものに修正してpom.xmlがあるpathで以下を実行すればデプロイされます。

mvn appengine:update