トップページ⇒php
997コメント290KB

Google App Engine 3アプ目

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/25(木) 19:38:10ID:???
Google App Engine
http://code.google.com/appengine/

■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/
Google App Engine 2アプ目
http://pc11.2ch.net/test/read.cgi/php/1243654802/

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html

■推奨フレームワーク
kay 圭
http://code.google.com/p/kay-framework/
日本語ドキュメント
http://kay-docs-jp.shehas.net/index.html
あとKayにバンドルしているWerkzeugのデバッガはけっこう使いやすいですよ。使い方なんかはこのあたりを見てください
http://kay-docs-jp.shehas.net/debugging.html
Google App Engineプログラミング入門 (kay の解説本)
http://www.amazon.co.jp/dp/4048676938
0002nobodyさん2010/02/25(木) 19:39:25ID:???
Google AppEngine 3アプ目
http://pc11.2ch.net/test/read.cgi/php/1267057923/
0003nobodyさん2010/02/25(木) 23:59:59ID:kJR9vVB2
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0004nobodyさん2010/02/26(金) 10:43:49ID:3WEYi4mT
Javaのやつキモい。
このスレはPython限定で。
0005nobodyさん2010/02/26(金) 10:59:38ID:???
過去スレ
ttp://www.unkar.org/read/pc11.2ch.net/php/1207754942
公式ブログ
ttp://googleappengine.blogspot.com/
公式 Downtime Notify
ttp://groups.google.com/group/google-appengine-downtime-notify/
Welcome to Google App Engine Downtime Notify!

This is an announcement-only list for staying informed about system outages.

For discussions on Google App Engine, visit our developer forum.
0006nobodyさん2010/02/26(金) 11:24:30ID:???
せっかくスレが2つ立ったから、話題を分離して情報交換しましょう。

http://pc11.2ch.net/test/read.cgi/php/1267057923/
Google AppEngine 3アプ目 → GAE for Python

http://pc11.2ch.net/test/read.cgi/php/1267094290/
Google App Engine 3アプ目(このスレ) → GAE for Java

よろしくお願いします。
0007nobodyさん2010/02/26(金) 14:06:24ID:???
こっちが Java かよ
0008nobodyさん2010/02/26(金) 17:04:32ID:???
Java用のテンプレート作りましょう!

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/intl/ja/appengine/docs/java/overview.html

■推奨フレームワーク
Slim3
http://code.google.com/p/slim3/
http://sites.google.com/site/slim3appengine/
日本語ドキュメント
http://d.hatena.ne.jp/higayasuo/20081030/1225365898
0009nobodyさん2010/02/26(金) 17:59:54ID:???
Twitterのハッシュタグ「#appengine」をウォッチするのもオススメかも。
http://search.twitter.com/search?q=%23appengine

ただ正直俺はTwitter上で話をしないで欲しいと思ってる。理由は、
・ハッシュタグを付ける人と付けない人がいる(@には大抵付いてない)
・ログを追うのが面倒
基本IRCとかLingrとかで話して、その内容をBotでTwitterに流すみたいにならないかな
0010nobodyさん2010/02/26(金) 19:49:27ID:???
>>9
twitterで話す為の仲介サイトappengineで立ち上げればいいじゃん。
0011nobodyさん2010/02/26(金) 19:58:13ID:???
eclipseでサーブレットクラス作ったり名前変えたら
勝手にweb.xml書き換えてくれた気がするんだけど
gae用のプロジェクトだとならない?
0012nobodyさん2010/02/26(金) 20:15:12ID:???
ならない
0013nobodyさん2010/02/26(金) 20:35:14ID:???
>>10
ハッシュタグ無しの@を拾うのが大変
0014nobodyさん2010/02/27(土) 01:33:43ID:???
>>12
�d
0015nobodyさん2010/02/27(土) 16:20:28ID:BCTlyCJV
ローカルで動かしてるときはGWTが動いてるのに
本番にアップするとちっとも動かなくなるのは何が原因??
0016nobodyさん2010/02/27(土) 20:33:48ID:???
ツイッターみてたら不安定不安定の連呼だな
0017nobodyさん2010/02/27(土) 21:55:29ID:jZU5pGXF
>>15
ローカルでコンパイルして試しても動かない?
スタティック変数とか使ってると、Devモードでは動くけどコンパイル後は動かないとかよく起きるよ。
0018nobodyさん2010/02/27(土) 23:12:14ID:???
Pythonで以下のようにgoogle.appengine.api がないというエラーが出てしまうのですが、これはSDKで提供されているものではないのでしょうか?
import dbを利用したいと考えています


メッセージ ファイル名 行 位置
Traceback
<module> C:\Documents and Settings\n\Google\GAE\loidbot\module1.py 3
exceptions.ImportError: No module named google.appengine.api
0019nobodyさん2010/02/27(土) 23:36:22ID:???
>>18
dev_appserver.pyから起動したか?
0020nobodyさん2010/02/27(土) 23:47:59ID:???
>>18
>>6嫁
0021nobodyさん2010/02/27(土) 23:48:43ID:???
>>18
こっちはJava版らしいよ。
0022nobodyさん2010/02/27(土) 23:52:36ID:???
>>16
だってちょうど障害があったじゃん
0023nobodyさん2010/02/28(日) 00:56:38ID:???
>>19
Google App Engine Launcherを起動したのですが、そこから単体のファイルを実行するにはどうしたらいいのでしょうか?
app.yamlで指定して↓みたいに実行するのですか?
http://localhost:8080/application

>>20-21
すいません
次回から気をつけます
0024nobodyさん2010/02/28(日) 01:04:04ID:???
うまくいきました
>>19さんの指摘の通りIDEから実行していたのが問題でした
ローカルのサーバを起動してそこで試さなければいけなかったんですね
0025nobodyさん2010/02/28(日) 10:14:01ID:???
GAEのJavaとPythonの違いですが、
やっぱ中間コードにコンパイルするJava版の方がPythonよりも動作が高速になるんでしょうか?
ベンチマークとかのデータがあったら、ご紹介をよろしくお願いいたします。
0026nobodyさん2010/02/28(日) 11:22:01ID:???
>>25
javaもpythonもバイトコードに変換するのは一緒です。
0027nobodyさん2010/02/28(日) 11:23:59ID:???
>>25
Pythonの方が速いみたい
http://gaejava.appspot.com/
0028nobodyさん2010/02/28(日) 11:33:48ID:???
>>27
それ、datastoreの性能しかみれないじゃん

Low-level APIだとaddとfetchは同等かそれ以上の速さか
どこに違いがあるんだろ
0029nobodyさん2010/02/28(日) 12:31:01ID:4z5dHcNm
通常の処理速度はJavaの方が早いと思うんだが、spin-up時はどっちが早いんだろうな。
何となく、そっちはPythonの方が早いイメージ。

Javaは今までそんなこと考慮しない事が多かったし。
0030nobodyさん2010/02/28(日) 22:24:59ID:Hn8T5BVZ
>17

ローカルでは動いてます。
同じソースが本番で同じように動かないです。
0031nobodyさん2010/02/28(日) 22:40:35ID:4z5dHcNm
>>17
うーん、Java→JSにコンパイルした後の状態で動いているかどうかを聞いてるんだけどな。
具体的には、以下の条件でローカルで動作確認してみな。

1.eclipseの赤いアイコンをクリックしてJavaのクラスをJSにコンパイル。
2.ローカルで起動したときに application.html?gwt.codesvr=127.0.0.1:9997 の ? 以降を省略したURLでアクセス

これで動かなくなったら、Java→JSのコンパイルで壊れている。
それ以外の場合だと今の情報量では俺には分からん。
0032nobodyさん2010/02/28(日) 23:19:09ID:Hn8T5BVZ
>31

動いてる。
0033nobodyさん2010/03/01(月) 04:44:02ID:???
>>29
使用するフレームワークでも変わってくるしな
0034nobodyさん2010/03/03(水) 11:23:37ID:???
ツイッターで見かけた怖いこと

http://twitter.com/oshitajunji
AmazonEC2のサーバーインスタンス26台が今朝急に吹っ飛びました。
Amazonサポートからは「復旧無理なんで自分達で新規で立て直して」だって。クラウドってそんなもん?

ec2の方がgaeよりはいいと思ってたけど
そうでもないのか
あくまでもアクシデントだろうが恐ろしいなぁ
0035nobodyさん2010/03/03(水) 18:26:26ID:???
SLA上はインスタンスは99.95%の稼働保証とのことですが、その0.05%に26台全部がなってしまったと理解するしかないので、今後の対応を検討中です。
0036nobodyさん2010/03/03(水) 18:51:49ID:???
EC2って柔軟ではあるけど基本的に永続ストレージに突っ込んだデータ以外はいつ飛んでもいいようにしとけよ的なルールじゃなかったっけ?
0037nobodyさん2010/03/03(水) 19:15:04ID:???
永続ストレージが吹っ飛(ry
0038nobodyさん2010/03/03(水) 21:29:02ID:???
100%の保証なんかできませんって建前だし、現実もその通りだからな。
吹っ飛んでもどうにかできるぐらいの体制を取らなきゃダメよね。
0039nobodyさん2010/03/03(水) 21:48:32ID:???
アプリケーションのインスタンスが飛んだら永続データにもアクセス出来なくなるんだから
永続データが飛んでないって言っても無意味
0040nobodyさん2010/03/04(木) 02:23:56ID:???
全部同時に脂肪ってことはインスタンスの多重化も無効なわけで
simpledbをストレージにしてなかったらデータロストするし
想像するだけで死にたくなるな
0041nobodyさん2010/03/04(木) 15:25:25ID:???
クラウド→Webサイトへの大量アクセスを担当
オンプレミス→クラウドのデータをバックアップ
クラウドが吹っ飛んだら、オンプレミスからリカバリー

こういうかんじで冗長化しておこうと思います。
0042nobodyさん2010/03/04(木) 15:29:06ID:???
>>34
AmazonEC2のリカバリーってどうすんだろ?

Xenとかでシステムを丸ごと仮想化しておいて、一定時刻のスナップショットデータをバックアップ
飛んだら、データをコピーして一発復旧★とかできるんですか?
0043nobodyさん2010/03/04(木) 18:47:52ID:VlUAVlHo
ソースを修正してデプロイしなおしたんだが、
修正箇所が本番環境に反映されてないみたい。
本番上のプログラムを一辺削除したりしたいんだが、そういう画面って
どこにもないの??
0044nobodyさん2010/03/04(木) 18:57:03ID:???
>>43
バージョンあげてデプロイすれば?xmlかyaml書き換えろ
ちなみに削除も可能だぞ
同じprefix(***.appspotの***部分)は二度と使えなくなるけどな
0045nobodyさん2010/03/04(木) 19:30:48ID:VlUAVlHo
バージョンを2にしてデプロイしたんだが、1しか選べないみたいだぞ
0046nobodyさん2010/03/04(木) 20:10:22ID:???
>>45
Administration > Versions > Make Default

つーか管理メニューの存在知ってる?
0047nobodyさん2010/03/04(木) 20:48:36ID:VlUAVlHo
>46

知らなかった。ありがとう。
でも結局修正してアップしたソースは動かなかった。

htmlのエントリーポイントになってるjavaが、エラー処理もふくめてまったく
読み込まれてない感じだ。ローカルで実行すると動いてるんだがなあ。
0048nobodyさん2010/03/04(木) 23:21:09ID:???
>>47
フレームワークは?
spin-upが異常に遅いJRuby on railsとかGroovy使って
「動かない」とか言ってたら怒るぞ
0049nobodyさん2010/03/05(金) 13:09:10ID:???
>>9
AppEngineじゃないからスレ違いだけど
2chライクな掲示板に書き込むとTwitterに流すアプリならある
http://twitch.s362.xrea.com/about/
0050nobodyさん2010/03/06(土) 11:39:11ID:???
今入門書をインストール手順のスクリーンショットから水増し水増しで巨大に製本して3500円とかだもん
0051nobodyさん2010/03/06(土) 16:11:35ID:???
pythonの人ってなんで頭が悪そうなんですか?
0052nobodyさん2010/03/06(土) 16:37:52ID:???
>>51 Javaの人って何故上から目線なの?
0053nobodyさん2010/03/06(土) 16:38:18ID:???
javaとかpython使う人がどうとか言いたくないけど、51みたいな人は頭か性格悪いと思う。
0054nobodyさん2010/03/06(土) 17:20:40ID:???
きもちわるいなー
0055nobodyさん2010/03/06(土) 19:22:44ID:???
こないだの2ch攻撃で、一部の鯖をオペミスでデータ吹っ飛ばしたらしいけど、
この際だからクラウドに置くってのはどうなんだろ。どっちが安いのか知らないが。
0056nobodyさん2010/03/06(土) 19:29:40ID:???
EC2でもデータ吹っ飛ばした人がいるんだから無意味だろ
0057nobodyさん2010/03/06(土) 19:38:52ID:???
クラウドでオペレーターの無能が治るなら世話はない
0058nobodyさん2010/03/06(土) 21:47:08ID:???
junitで、下のようなノリでローカルサーバのdatastore(60MBくらい)にクエリをかけようとすると、
OutOfMemoryErrorでコケてしまうのですが、何か回避策をご存知の方はいないでしょうか。

private final LocalServiceTestHelper helper = new LocalServiceTestHelper(
        new LocalDataStoreServiceTestConfig().
          setNoStorage(false).
          setBackingStoreLocation("war/WEB-INF/appengine-generated/local_db.bin")
      );

@Before public void setUp() { helper.setUp(); }

@Test public void test() {
  DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
  Query query = new Query("table");
  query.addFilter("name", FilterOperation.EQUAL, "hoge");
  PreparedQuery p = datastore.prepare(query);
  QueryResultIterable<Entity> it = p.asQueryReusltIterable(limit(1000));
  for (Entity entity : it) {
    ...
}
0059nobodyさん2010/03/07(日) 17:40:08ID:???
Task Queueにキューを入れた後に、それをプログラムからキャンセル出来ますか?
0060nobodyさん2010/03/07(日) 20:58:28ID:???
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0061nobodyさん2010/03/08(月) 20:15:19ID:smbLWYQ7
{key, url, view, date}

こんな感じのEntityのkindがあったとして、この中から
「一週間以内のdateを持つentityをviewが大きい順に取得」みたいなことをやりたい時に、
スマートな解決方法はないでしょうか。
今のところ、別個にkindを作って、常に一定期間内のdateが収まっているように
taskをcronで回してメンテする、くらいしか思いつかないのですが。
0062nobodyさん2010/03/09(火) 18:23:39ID:???
>>58
ヒープサイズが小さいとかいうオチはないよな。
0063nobodyさん2010/03/10(水) 00:03:48ID:???
>>62
上から、90、65、80です♪
0064nobodyさん2010/03/11(木) 01:34:55ID:???
http://www.itmedia.co.jp/news/articles/1003/10/news045.html
Google、ビジネスアプリを販売するオンラインストアをオープン
0065nobodyさん2010/03/11(木) 02:45:07ID:???
>>64
関係ねーし
0066nobodyさん2010/03/11(木) 20:59:21ID:???
Datastoreの時刻がUTCで記録されるけど、Logの時刻はパシフィックっておかしくね?
0067nobodyさん2010/03/11(木) 23:10:47ID:???
インスタンス自体のメモリって何MBくらい使えるんでしょうか。
ほぼ100%読み出す画像とかは、memcacheじゃなくてローカルで持っててもいいのかな、
とか思っているのですが。
0068nobodyさん2010/03/11(木) 23:22:55ID:???
>66
自分でDatastoreにLogぶっこむよぅぅうにした
0069nobodyさん2010/03/11(木) 23:24:28ID:???
>67

正解
0070nobodyさん2010/03/12(金) 00:20:37ID:???
>>69
探したらWeakHashMapがホワイトリストに入ってたのでありがたく使うことにしました。
http://code.google.com/intl/ja/appengine/docs/java/jrewhitelist.html
0071nobodyさん2010/03/13(土) 23:05:54ID:???
サーブレットだるい…Railsの偉大さを再確認した。
0072nobodyさん2010/03/14(日) 02:08:35ID:???
たしかにRailsのメモり消費はGreat
0073nobodyさん2010/03/14(日) 03:13:34ID:???
Rails使ったことないんだけど、どういったところの面倒を見てくれるフレームワークなの?
あと、Grailsとか動かないんだっけ。
0074nobodyさん2010/03/14(日) 05:05:33ID:???
試してないけど大規模でなければSQL4GとJRubyで普通に使えそう

SQL4GでGAE+Railsを体験しよう - @IT
http://www.atmarkit.co.jp/fcoding/articles/gaephp/03/gaephp03a.html


もっともJavaでも今どき素のサーブレットを使うのはどうかと思うが…
0075nobodyさん2010/03/14(日) 10:09:54ID:???
Javaの人はどのフレームワーク使ってるの?
0076nobodyさん2010/03/14(日) 12:01:50ID:???
Datastoreに関してはGlobal Transactionが実装されたこともあるしSlim3一択だな
Web層は結構思い思いのを使ってる印象だけど、Seasar2からの移行とかもありそうだし
日本ではやっぱりSlim3が多いのかな
0077nobodyさん2010/03/15(月) 11:46:53ID:???
RailsのO/Rマッパーやscaffoldも使えないのにGAEでrails使うってバカなの?
0078nobodyさん2010/03/15(月) 20:39:01ID:???
>>77
>>74

よく読めよカスが
ActiveRecord使ってんだろ
0079nobodyさん2010/03/15(月) 20:49:50ID:???
GAE で Rails っぽいことやりたいなら
GAEOil がおすすめだぴょ~ん (AA略
0080nobodyさん2010/03/15(月) 22:16:34ID:20M/q55D
javaで開発してるんですが、PHPとかrubyのフレームワークのフロントコントローラみたいのって
どうやって作ればいいでしょうか??
PersistenceManagerFactoryインスタンスからPersistenceManagerインスタンスを取り出す部分とか、
フロントコントローラ的なものでやりたいと思って。
Slim3ってのがあるのは知ってるんですが稼動実績的にはどうなんでしょう??
0081nobodyさん2010/03/15(月) 23:09:33ID:???
そもそもGAE/Jにどれだけ稼働実績があるのかと小一(ry
0082nobodyさん2010/03/16(火) 08:09:56ID:???
>>80
FWを自作する目的が今ひとつ分からないんだけど
"フロントコントローラ"というキーワードが分かっているんだから
検索すれば例がすぐに見つかるだろうし
Slim3が不安ならStrutsあたりを使えばいいんじゃないかな
0083nobodyさん2010/03/17(水) 14:06:50ID:???
>>80
採用・稼働実績が必要要件のひとつにあるなら
最初からGAEなんか選ぶべからず

>>81
devfestでGoogleのプレゼン見たけど
有名所の採用例いっぱいあったぞ
エコポイントとか
0084nobodyさん2010/03/17(水) 14:11:57ID:???
>>80
javax.servlet.Filterを実装しろ
0085nobodyさん2010/03/17(水) 14:15:49ID:???
>PersistenceManagerFactoryインスタンスからPersistenceManagerインスタンスを取り出す部分とか
この処理は重い(遅い)
Low Level APIを使ってるSlim3 Datastoreにしとけ
0086nobodyさん2010/03/18(木) 21:48:58ID:F9NzPMLl
Google App Engine をはじめてみよう
ttp://googlejapan.blogspot.com/2010/03/google-app-engine.html
> "Google App Engine Java の色々な機能を、実際にコーディングしながら体験
> してみよう" という主旨のもと、Google App Engine for Java のコードラボを
> これまでに3回開催してきました。Java を使った Web アプリケーションの開発
> 経験はあるけれども、App Engine は初めてという方向けで、毎回、即日定員に
> 達してしまう人気コースです。
>
> このコードラボで利用している教材は、GTUG のメンバーとGoogle のソフトウェ
> アエンジニアたちが共同で作り上げたものです。コース設計からドキュメント
> の制作、コース参加者のフィードバックを反映するなど、さまざまな面でGTUG
> メンバーの惜しみない協力をいただきました。
0087nobodyさん2010/03/18(木) 23:40:39ID:???
また勉強会詐欺か。
0088nobodyさん2010/03/18(木) 23:41:59ID:???
どちらかというとセミナーじゃないの、これ。
0089nobodyさん2010/03/18(木) 23:43:07ID:???
無料?
0090nobodyさん2010/03/19(金) 01:54:13ID:mY6YrP4p
データが飛ぶんだが・・・・
もうどうしろと
0091nobodyさん2010/03/19(金) 07:08:15ID:???
書き込んだら正常に終了したかどうか見る必要があるね
0092nobodyさん2010/03/19(金) 09:48:46ID:???
スレ自体がクラウドかよ!
0093nobodyさん2010/03/19(金) 10:35:00ID:???
なにこれ、ミラーリングされてるの?
0094nobodyさん2010/03/19(金) 11:01:30ID:???
b
0095nobodyさん2010/03/19(金) 11:04:41ID:???
↑つまんね
0096nobodyさん2010/03/19(金) 13:47:31ID:zTuYnzku
>>90
データが飛ぶのは、おまえが「バカ」だからww
0097nobodyさん2010/03/19(金) 20:04:38ID:a+drQKsn
どっちのスレがマスターでどっちがスレーブなの?
更新処理はどっちのスレにすればおkなんですか?
0098nobodyさん2010/03/19(金) 21:43:08ID:???
ここでおk
0099nobodyさん2010/03/19(金) 22:05:01ID:???
>>97
あっちはマスター、こっちがビギナー
0100nobodyさん2010/03/19(金) 23:31:20ID:???
昨日、app engine使い始めたんだけど、既に挫折しそうだ

Javaでslim3 datastore実行時に、ローカル環境だと下記のように出るんだけど、デプロイすると動く
原因分かる人居ないですか?
tried to access method com.google.appengine.api.datastore.Entity.<init>(Lcom/google/appengine/api/datastore/Key;)V from class hoge.meta.HogeMeta

datastore-indexes.xmlが生成されてないのが、すげーあやしいんだけど。。。


ちなみにキーの生成はこうしてるんだけど、正しい?
User author;
Key key = Datastore.createKey(Hoge.class, author.getNickname());
というか、ユーザを識別するのってgetNicknameで一意になるの?
getUserId使うとやっぱりローカルだと取れないみたいだけど
0101nobodyさん2010/03/20(土) 00:22:07ID:???
datastore-indexes.xml手書きで書いたらサーバにインデックスの登録も出来たけど、開発環境じゃやはり動かないな
■ このスレッドは過去ログ倉庫に格納されています