GAE
datastoreのModelクラスを何度もリファクタしながらローカル開発サーバでテストしていると、index.yamlに、不要なインデックス設定が残ったままになってしまう。 これをきれいにするため、index.yamlの中身を全削除してから実行すると、ローカル開発サーバが…
サーバのデータをローカル開発サーバ上にリストアする方法。 自身のアプリケーションIDを APP_ID とします。 appcfg.py download_data --application=`APP_ID` --url=http://APP_ID.appspot.com/_ah/remote_api --filename=hoge.dump --email=Googleアカウン…
自分の中でごっちゃになっていたので整理する。 Queryのcount()のリファレンスには、こうある。 This returns the same result as len(q.fetch(limit)) but more efficiently. query = MyModel.query(条件) cnt = query.count() #OK cnt = len(query) #NG cn…
つい今しがた、1ヶ月ぶりぐらいに、gcloud components update をやったら、ローカル開発サーバが起動しなくなってしまった。 エラーログ Running dev_appserver with the following flags: --skip_sdk_update_check=yes --port=12080 --admin_port=8004 --l…
targetに指定するものは、app.yaml における version です。 サーバにリリースはしたが、デフォルトは別のバージョンにしている、などの時に使うもの。
cron: - description: test job url: /hoge schedule: every day 18:00 timezone: Asia/Tokyo target: rev01という感じでタイムゾーンを指定しても、ローカル開発サーバではタイムゾーンを考慮してくれません。
DISTINCTのやり方 import pprint from google.appengine.ext import ndb from src.models import my_model #というモジュールがあるとして query = my_model.MyClass.query( projection=[ my_model.MyClass.property1, my_model.MyClass.property2 ], distin…
アプリケーションIDを、仮に、APP_ID とする。 app.yaml application: APP_IDで、これをローカル開発サーバで実行させると、アプリケーションIDは、 dev~APP_IDとなる。これはどこでわかるかというと、ローカル開発サーバの管理コンソール(http://localhost…
bulkloaderの使い方についてググると、古い情報ばかりヒットして混乱するので、まとめる。 やりたいこと csvファイルを本番サーバのdatastoreにインポートする。 前準備 app.yaml に、次の2行を追加する。 builtins: - remote_api: onなお、ググると、次をa…
GCSにjavascriptを用いてアクセスできるライブラリを試した。サンプルコード https://github.com/GoogleCloudPlatform/storage-getting-started-javascript 参考ページ http://qiita.com/noazoh/items/f893e5197f8ef56876a9注意事項は参考ページに書いてある…
ここでテストできる。 https://developers.google.com/apis-explorer/#p/storage/v1/テストのやり方は後述
問い:GAEのローカル開発サーバは、devserver.py ですが、GCSのローカル開発サーバに相当するものはあるのか?こたえ:ある(SDK 1.8.1以上であれば) 使い方 通常のローカル実行時と同様、ローカル開発サーバを起動。GAELauncherから実行するとか。 起動し…
gcloud auth login アカウント認証を行うのと同時に、そのアカウントがアクティブアカウントに設定される。ターミナル内でそのアカウントでログインしている的な状態となり、以降のgcloudやgsutilコマンドでの操作がそのアカウントによる操作となる。新たに…
たわむれに、作成したデフォルトバケットを削除してみたところ、削除は出来たのだが、再作成しようと思い、GAE管理コンソールのApplication Settingsを開いてみると、例のcreateボタンが無く、「作成されましたよ」的なメッセージが表示されている。バケット…
Google App Engineのプロジェクト毎に、Google Cloud Storageのデフォルトバケットを作成することができる。やり方: AppEngine管理コンソールより Application Settings -> Cloud Integration -> createボタンをクリックGoogle Developers Console(以後、…
GAELauncherによるupdateでは、/usr/local/bin および /usr/local 配下にシンボリックリンクが作成される。 gcloudでupdateすると、それは作成されない。Cloud SDK を完全にアンインストールするには、次のようにしたらいいんじゃないかと思う。 google-clou…
いつからそうなったのか、きっかけがわからないし、未だに解決していないのだが、起こったこと時系列でメモしてみる。 OAuth の検証をしようと思い、とあるサンプルコードをダウンロードして、ローカル開発サーバで実行してみた。 認証処理の途中で、from n…
過去記事 http://d.hatena.ne.jp/noazoh/20140731/1406783304 の補足。開発サーバのログレベルはアプリケーションごとに設定することができる。Google App Engine Launcherにて、プロジェクトのApplication Settings で、起動時フラグを設定してやることによ…
HTTP GETおよびPOSTのリクエストメッセージにサイズ制限はあるのか?調べ中。GETメッセージ2047byte説がある。2009年の記事。 http://d.hatena.ne.jp/Kazumi007/20090921/1253501500 POSTメッセージ10MByte説がある。2011年の記事。 http://php6.jp/python/2…
参考: http://knightso.hateblo.jp/entry/2014/06/10/080720開発サーバ上でのtaskqueueにおいては、queue.yamlに設定したrateの設定は無視される。 たとえば5分おきに実行させたいと思って、rate: 20/h とやっても、開発サーバ上ではwaitせず連続して処理…
サードパーティ製のPythonライブラリを使おうと思った時、うまくimportできるものとそうでないものがある。importできない原因の1つに、ライブラリ自身が依存している他パッケージをimportする際に、そのパッケージにPYTHONPATHが通っていること前提になっ…
先日、こんなトラブルがあった。 bulkloaderにて、とあるデータを取り込む。 開発コンソールの Datastore Viewer で中身を確認。ちゃんと入ってる。 自分のプログラムから、そのデータをクエリで取得すると、特定のプロパティだけ、どのレコードも常に値が N…
ローカル開発サーバで開発・テスト中に、あるカインドの全エンティティを削除したい場合、ローカル開発サーバの管理コンソールの Interactive Console を使うと良い。(http://localhost:ポート番号/console) from google.appengine.ext import ndb from 場…
たとえば、検索条件に従って検索を行うhogeというページがあったとすると、検索条件をサーバ側に送信する方法には次のようなものがあるだろう。 方法1 GETメソッドで、URLにパラメータを付与する。 http://サーバアドレス/hoge?param1=xxxx¶m2=yyyy&par…
自分用に抜粋。 ファイル名は、小文字+アンスコ形式。 クラス名はPascal形式(単語の先頭を大文字、アンスコ使わない)。 グローバル変数は、小文字+アンスコ形式。 定数は、大文字+アンスコ形式。 メソッド・関数は、小文字+アンスコ形式。 ローカル変…
インデックスの削除のやり方をググると、 appcfg.py vacuum_indexes をやれ、という情報に行き当たるのであるが、渡しているパラメータについて説明がないことが多くて混乱するのでメモっておく。基本形はこうだ。 appcfg.py vacuum_indexes フォルダ名 -A …
datastoreでfilterを行うとき、次のように、"="の前にスペースを空ける必要があるのだが、その操作によってインデックスが設定される。 datas = カインド名.all().filter("カラム名 =", "hoge")index.yaml - kind: カインド名 properties: - name: カラム名…
普段、GAE Launcher つかって、開発サーバ起動するじゃないすか。 で、データストアが消えないように、自分の好きな場所にデータストアを保存するように設定しとくじゃないすか。 そしたら、今回は全部クリアしたいなーというときには、あえて、GAE Launcher…
import logging ... logging.debug("hoge")とやるわけだが、ログレベルは、開発サーバでは、dev_appengine.pyの起動パラメータに指定してやる。 --log_level=debugdebug/info/warning/critical/error のいずれか。なお、ググると、良く「以下をmain()に記述…
ローカル開発サーバにおけるDatastoreの保存先ファイルは、tempファイルであり、マシンを再起動すると消えてしまう。 これを防ぐには、AppLauncherにて Editメニュー⇒Application Settings を開き Extra Flags: の欄に、以下のように設定する --datastore_pa…