Larval 5アプリをGoogle AppEngineで動かすには

AppEngineでLaravelを動かすには、Cloud SQLに接続するためのunix_socketの設定や、runtimeディレクトリへの出力をCloud Strageへ向けるなどの対応が必要になります。
これらに対応した設定を生成してくれるパッケージがGaeSupportL5です。
GaeSupportL5がサポートするLaravelのバージョンは5.1です。

この記事では、Laravel5プロジェクトにGaeSupportL5をインストールし、AppEngine、Cloud SQLおよびCloud Strageリソースを設定し、デプロイ、動作確認することろまでをまとめています。

この記事で作成するLaravel 5.1のプロジェクトはGithubにアップしてありますので、全体のソースはこちらを参照ください。
Github: hrendoh/trial-gae-support-l5

Laravelプロジェクトの作成

GaeSupportL5は、5.2にはまだ対応していないので、5.1のプロジェクトを作成します。

$ composer create-project laravel/laravel laravel5-gae "5.1.*"
$ cd laravel5-gae

“Larval 5アプリをGoogle AppEngineで動かすには” の続きを読む

Mac OSX Marvericks上でAppEngien Pyhon 開発環境 GoogleAppEnginLauncher をセットアップする

公式のドキュメントでは The Development Environment – Google App Engine — Google Developers にセットアップ方法が記載されています。

PHPがサポートされるようになったので、もうPythonで開発する必要もなくなりましたが、久しぶりにセットアップする必要があったので手順をメモしておきます。

  1. Pythonのインストール

2014年4月現在、AppEngine SDKを利用するは Python 2.7 が必要です。
Marvericksは、プリインストールされているPythonのバージョンが2.7なので改めてPythonをインストールする必要はありません。

$ python -V
Python 2.7.5
  1. SDKの入手

Download the Google App Engine SDK – Google App Engine — Google Developers よりSDKをダウンロードします。

GoogleAppEngineLauncher-1.9.1.dmg をダウンロードし、開いて GoogleAppEnginLauncher を Applications にコピーします。
Applications にコピーした GoogleAppEnginLauncher を開くとコマンドにパスを通すか聞かれます。

GoogleAppEnginLauncher-install1
OK しておきます。

GoogleAppEnginLauncher-install2

以上でセットアップは終わり。GoogleAppEngineLauncherが開きます。

GoogleAppEngineLauncher

GoogleAppEnginLauncherは、アプリケーションを追加、起動、デプロイなどの機能を提供します。

アプリケーションの追加、起動までやってみます。

アプリケーションの追加は左下の[+]ボタンから行います。
[+]ボタンを押すと以下の設定画面が表示されます。

GoogleAppEnginLauncher-add-application

https://appengine.google.com/ で作成したApplication Identifierを Application ID に指定し、プロジェクトを保存するディレクトリ Application Directory を入力して OK します。

とりあえず Application ID は、ローカルでテストするだけなので helloworld と入れました。
指定したディレクトリに、HelloWorldアプリケーション (Hello, World! – Google App Engine — Google Developers) が生成されます。

GoogleAppEngineLauncher-start-application
追加されたアプリケーションを選択して、左上の [Run]ボタンをクリックするとアプリケーションが起動します。
(コマンドラインで dev_appserver.py を実行するのと同じです)

http://localhost:8080 にアクセスすると Hello World と表示されます。

AppEnginePython-HelloWorld

ローカルに環境を作成しなくても機能を試すだけなら、Cloud Playground が便利です。
フレームワーク Flask、Django、Bottleを利用した例:
Get Started With Python – Google App Engine — Google Developers

AppEngin (Python) でメール受信

app.yaml
[text]
– url: /_ah/mail/.+
script: handle_incoming_email.app
login: admin

inbound_services:
– mail
[/text]

handle_incoming_email.app
[python]
import logging
import webapp2
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler

class ReceiveEmail(InboundMailHandler):
def receive(self,message):
logging.info("Received email from %s" % message.sender)
plaintext = message.bodies(content_type=’text/plain’)
for text in plaintext:
txtmsg = ""
txtmsg = text[1].decode()
logging.info("Body is %s" % txtmsg)
self.response.out.write(txtmsg)

app = webapp2.WSGIApplication([
ReceiveEmail.mapping()
], debug=True)
[/python]