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を開いて、ぽちっとボタンを押せば完了です

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
を選べばブラウザで表示することができます。


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
を選べばブラウザで表示するとエラー・・・。


上記は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