GoogleAppEngine
GoogleAppEngineのStandard環境でPython3.7のランタイムがベータ版で利用できるようになったので、試していました。 ドキュメントにはFlaskアプリケーションをデプロイする手順が記載されていましたが、Djangoアプリケーションだと少し設定が追加で必要だっ…
3年ぐらいGoogleAppEngine (GAE)を使っていなかったのですが、GCPの無料枠も増えてるみたいだし久しぶりに触ってみようと思って調べていました。 以下、GAEとGCP周辺の知識のアップデートなメモ書き。 GoogleCloudPlatform (GCP) cloud.google.com Googleが…
GoogleAppEngineを久々に使おうとしたらいろいろ変わっていて戸惑いまくり。 静的ページをホストしてるだけのプロジェクトで更新をしたかったので、SDKのインストールが必要なんですが、毎回面倒なのでDockerで少し楽できないかと、ゴニョゴニョしてました。…
GoogleAppEngineでsocketが使えるようになったのは1年ぐらい前だった気がしますが、使ったことなかったので試してました。 Sockets Python API Overview | Python | Google Cloud Platform まだプレビューリリースですね。 socketを使えるのならparamikoでSS…
AppEngineで動かすアプリを作っていて、Blobstoreを使おうかなーと思って久しぶりにドキュメントを見たら、CloudStorageを使うことが推奨されていたので、試してた。 https://developers.google.com/appengine/docs/python/googlecloudstorageclient/?hl=ja …
GoogleAppEngineのDatastoreサービス(データベース)は昔はMaster/Slaveという方式だったけど、これはもう非推奨になっていて、今はHigh Replication Datastore(HRD)へ移行するようにアナウンスが出されている。 で、移行ツールが提供されているので、今さら…
GoogleAppEngineで動かす予定の、ちょっとしたデータベースアプリケーション(簡単なCRUD)を作るのにgoogle.appengine.ext.ndbを試しに使ってみてます。 少し使ってみて感じたことなど。 dbと比べて、APIの設計がよりDataStoreを効率よく使う方に向いてる(get…
appengine ja night #21 でGoogleAppEngineの採用事例として、 Cotto (リンク先は音が鳴るので注意) というサービスの紹介をしました。 プレゼンテーション資料はSlideShareにアップロードしてあります。 写真共有アプリのバックエンドサーバー 事例の紹介に…
仕事で使うことがあったけど、忘れそうなのでメモ。 AppEngineのバックエンドインスタンス(Backends)について。 Backends Python API Overview | Python | Google Cloud Platform ここではdynamicインスタンス、フロントエンドと同じコードをデプロイする前…
仕事で使ってみたりしてたものからフィードバックを取り込み。 Python2.7前提にしてドキュメントも更新した。 tokibito / tokky.appengine.core — Bitbucket tokky.appengine.core ドキュメント — tokky.appengine.core 0.1dev documentation
AppEngineのpython27ランタイムではPILを使うことができる。開発時のはまりどころをメモしておく。 PILはパッケージ周りの問題があってimportでコケる話は割とよく聞く。 try: from PIL import Image # (1) except ImportError: import Image # (2) PILをイ…
スパム投稿がひどかったので、hoge.appspot.comの内容を差し替え。 http://hoge.appspot.com/ Sphinxでビルドしたhtmlを置くことにしました。 APPIDがhogeだしexample的なコンテンツでも置いていければいいなー。
GoogleAppEngineは全体的に速度は遅いので、アプリケーションのチューニングは必要になる。 インフラ側を触れない(多少の設定はあるが)からアプリケーションコードでがんばらないといけない。 インフラを触れるなら、構成要素の各種ソフトウェアの設定を変更…
AppEngineではtestbedモジュールがテスト用のAPIスタブを用意してくれる。 Local Unit Testing for Python | Python | Google Cloud Platform unittestのsetUpとかで使うといいらしい。 import unittest class TestBedTestCase(unittest.TestCase): def _set…
主に自分用。 AppEngineを使うことが増えてきてるのだけど、素のwebappじゃちょっと微妙だけど大きめのフレームワークまではいらないかなーってときに使う。 tokky.appengine.core ドキュメント — tokky.appengine.core 0.1dev documentation ファイル構成に…
表題の通り。メモ。 AppEngineのSDKは、これを書いてる現在はDjangoの0.96がカレントバージョンで、SDK内部にはDjango 1.2も含まれている。 1.2に切り替える場合はアプリケーションのディレクトリに appengine_config.py を作成して1行書く。 webapp_django_…
AppEngineのwebappでdjangoのフォームを使うと、settings.LANGUAGE_CODEがen-usなのでエラーメッセージが英語になって残念ですよね。 その解決方法など。 main.py 単純なテンプレートでフォームを表示してis_validするだけのコード。 import os from google.…
最近仕事で Google App Engine を使う機会が増えてきてて、今更ながらまともに使い始めました(公開初日から触ってたのになー 作りかけのアプリケーションで、とりあえずアップロードするけど、公開までは全体にBasic認証かけときたいなーなどということが多…
もう2ヶ月も経ってしまってるけど、ajn#13で使ったスライドをslideshareにアップした。 appengine ja night #13 : ATND mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ View more presentations from tokibito
AppEngineでスピンアップが遅くなり過ぎないようにとか考えると、Pythonでもモジュールの遅延ロードをしないといけないわけで、まあ書く。 app.yaml この例ではすべてのリクエストをmain.pyで受ける。 application: nullpobug-sandbox version: 1 runtime: p…
コンテンツをいくらか削って、ホームページをDjangoからAppEngineに載せ変えました。 http://www.nullpobug.com/ もちろんPython版です。ドメインの設定が面倒だったので、slicehost上のnginxからリバースプロキシしてます。 自前で小さなフレームワークを作…
メモ。Pythonのモジュールのロードはsys.pathの順番で探しに行くから、アプリケーション側でsys.path[0]なんかに意味のないパスを追加すると、毎回モジュールロード時に追加したパスも参照されているのか、ロード時間が増えた(小さなアプリで300msぐらい)。 …
アドベントカレンダーにコッソリ登録したつもりだったのに、 id:kuenishi から翌日に指名されてしまった @tokibito です。 今日はAppEngineで書きます。最近仕事でも少し触ってます。 他の人みたいにボリュームたっぷりの記事は書けないので軽めに。 モデル…
app.yamlのscriptに指定したスクリプトはmain()がない限り毎回実行される。 importしたモジュールはmain()の有り無しに関係なくロード済みになる。(mainがなくてもVMは終了しないで再利用される)
メモ。appengineのDeadlineExceededErrorはBaseExceptionを継承しているのでExceptionで受けれない。 むしろAppEngineなら、指定なしのexceptは絶対に使わずに "except Exception" を使うようにして、エントリポイントのmain()でDeadlineExceededErrorを受け…
既出ですが、GoogleAppEngineは静的なコンテンツを置けるので、簡単なPythonCGI+静的HTMLのサイトで十分な場合にも便利ですよね。 例えば会社のホームページとか。 無料〜で使えるし、アクセス増えてもサーバ落ちないし、ホームページスペースとしては優秀な…
Google App Engineプログラミング入門という本が発売されてます。私も執筆に参加しました。 Kayフレームワークの入門にもなっているので、GAEでPythonを使ってみたいという人にはおすすめです。Google App Engineプログラミング入門作者: 中居良介,岡野真也,…
reStructuredTextからPDFファイルを生成するツールにrst2pdfというものがありますが、インストールとか設定でたまにはまる。もっと手軽にPDF作りたいなーってことでAppEngineに乗っけてみました。 URL http://www.rst2pdf.net/ https://rst2pdf-net.appspot.…
ちょっと作りたいものがあって、 AppEngine のプラットホームにマッチしそうな感じなので tmatsuo さんのKayでごにょごにょやってます。 タスクキュー使うのにdeferrdが楽チン便利。 from google.appengine.ext import deferred def some_task(message): # …
Google Code Archive - Long-term storage for Google Code Project Hosting. なんかレビューを待ってる人がいるとか、いないとか。あんまり使い込んでみてはないけどとりあえず紹介。 これを使うことで何が嬉しいか GAEのDjangoで使えなかった以下のものが…