2013年6月12日水曜日

34.Google App Engine 1.8.1リリース

このエントリーをはてなブックマークに追加



Ryo Yamasaki(@vierjp)です。

Google App Engine 1.8.1がリリースされたので変更点を確認しました。(Javaのみ)

・Task Queueの非同期APIがGAになったこと
・Search API がGAになったこと
Google Cloud Storage API Functionsがdeprecatedになってそのうち廃止されること
DatastoreのEntityのKeyをID値で自動採番した場合のデフォルトの挙動が変わること
が大きな変更点だと思います。

KeyのID値の自動採番の変更は既存のシステムの作りによっては影響があるかもしれないので、
1.8.1を適用する前に影響を確認した方がいいかも。

○関連リンク

SdkForJavaReleaseNotes - googleappengine - Google App Engine Java SDK
SDKダウンロードページ


◯1.8.1変更点

- This SDK will be the last release that can deploy Java 6 apps. In 1.8.2,
  the SDK will only be compiled with the Java 7 compiler and the only target runtime will be Java 7.

  Ver.1.8.1 の SDK は Java6 アプリをデプロイできる最後のバージョンになります。
  Ver.1.8.2 では SDK は Java7 コンパイラのみでコンパイルされ、ターゲットランタイムも Java7 になります。


- The Task Queue async API is now a GA feature.
  The asynchronous methods improve utilization by allowing your app to add, lease and delete multiple tasks in parallel.

 Task Queue の非同期APIはGA機能になります。
 非同期メソッドはアプリケーションが並列に複数のタスクを追加、リース、および削除できるようにすることで、
 利便性が向上します。


- Cloud Console projects are now created by default whenever a new App Engine app is created.
  This is a Preview feature.

 新しいApp Engineのアプリが作成される際に
 Cloud Consoleプロジェクトがデフォルトで作成されます。
 これはプレビュー機能です。

 結構前に作ったのもプロジェクト自体は作成されていた気がするけど、
 今後は紐付け済みの状態で作成されるのかな・・・?
 →追記:プロジェクトは作成されましたが自動で紐付けはされませんでした。


- In an upcoming release the Experimental Google Cloud Storage API Functions will be decommissioned.
  This API and its Experimental status is documented at the following link:
 https://developers.google.com/appengine/docs/java/googlestorage/overview

 今後のリリースで、Experimentalだった「Google Cloud Storage API Functions」は廃止されます。
 このAPIとその実験的ステータスは、次のリンク先のドキュメントに書かれています:
 https://developers.google.com/appengine/docs/java/googlestorage/overview


- The Google Cloud Storage library will replace Google Cloud Storage API and is now available as a Preview feature.
  More information can be found at https://code.google.com/p/appengine-gcs-client/

 「Google Cloud Storage library」はGoogleクラウドストレージAPIを置き換えます。
 そして現在プレビュー機能として利用可能です。
 さらに詳しい情報は https://code.google.com/p/appengine-gcs-client/ で見つけることができます

 今後は「Google Cloud Storage library」を使えとのこと。
 廃止するまでに十分な時間は用意するつもりだそうです。
 Files API使いやすそうだったんだけどなぁ。。
 PHPは通常のファイルI/O用関数で読み書きできるのに。(´・ω・`)


- Bandwidth between App Engine and Google Cloud Storage is currently free of charge
  (this may change in the future for certain levels of service).

  AppEngineとGoogle Cloud Storageの間の帯域は現在無料です。(将来変更される場合があります)

  GAE・GCS間の帯域は前から無料だった気がするんですが、私の勘違い・・・?


- The Search API has graduated from Experimental to Preview.
  Apps that have billing enabled can exceed the free quota levels and will be charged for usage above these levels.

 Search APIは、Experimentalを卒業してプレビューになった。
 課金を有効にしているアプリでは、無料クォータレベルを超えることができ、
 それを超えた分に課金されます。


- Estimated number of search results will only be accurate if it is less than or equal to the number of results requested.
  By default this can be overridden by setting 'number_found_accuracy' QueryOption in the Search API.

 Search APIに関して、検索結果の推定数は要求された結果の数以下の場合に正確になります。
 デフォルトでは、検索APIの「number_found_accuracy」クエリオプションを設定することで
 オーバーライドすることができます。


- Dates, atoms, and number fields can now be found by searching without a field restriction in the Search API.

  Search APIに関して、Dates、atom、およびnumberフィールドは、
 フィールド制限なしの検索をすることで見つけることができます。


- A quoted empty string now returns atom fields with empty values for the Search API.

 Search APIに関して、引用符で囲まれた空の文字列は現在空の値を持つatomのフィールドを返します。


- Snippet and count functions are no longer allowed in sort expressions for the Search API.

  Search APIでスニペットとカウントの機能はsort式では許可されなくなります。


- The Search API now has improved error messages for user errors and internal errors.

  Search APIのユーザー·エラー、内部エラーのエラーメッセージが改善されました。


- The Datastore now assigns scattered auto ids by default. Legacy auto ids are still available via the 'auto_id_policy' option in appengine-web.xml.

  データストアは、デフォルトで"散らばったAuto ID"を割り当てます。
  レガシーな自動IDはappengine-web.xmlの'auto_id_policy'オプションを使用して引き続き利用できます。

  私はEntityのKey値として自動採番したIDを使っていないので(デメリットがあったので)よく知りませんが、
  これまではIDの数値は必ず前のput時よりも大きくなっていく挙動なんでしたっけ?
  この挙動に頼った実装をしている場合は1.8.1になってデフォルトの挙動が変わる前に
  'auto_id_policy'の設定をしないとまずいのかも。
  1.8.1は6/11の朝(日本時間)には本番環境に適用されているからSDK正式リリースしてからじゃ遅くないか、と思いきや、
  「Google Cloud Platform Blog」によると
 This change will take effect for all versions of your app uploaded with the 1.8.1 SDK.
  「1.8.1のSDKを使って(jarを含んで?appcfgの話?)Uploadすると適用される」って書いてあるからまだ大丈夫みたいですね。
  EntityのKeyに自動採番したIDを使っている人は1.8.1を適用する際には一応注意。


- The Sockets API now allows client code to call get/set options against sockets. 
  Previously, calls raised "Not Implemented" exceptions.
 When java.net.Socket.get<option>() is called, a mock value is returned, calls to set<option>() will be silently ignored.

 現在Sockets APIでは、クライアントコードがソケットに対してget/setオプションを呼び出すことができます。
 以前は、"Not Implemented"の例外が発生していました。
  java.net.Socket#get〜〜()を呼ぶとモック値が返され、set〜〜()を呼ぶと無視されます。

これらのメソッドを使っている既存ライブラリのための対応でしょうか。


- Fixed an issue with the namespace not being displayed when a user attempts to select a namespace in the Admin Console.
https://code.google.com/p/googleappengine/issues/detail?id=8164

ユーザが管理コンソールでネームスペースを選択しようとしたときにネームスペースが表示されない問題を修正しました。


- Fixed an issue in the Admin Console Logs page to correctly display 'Until' instead of 'Since' for logs search criteria.
https://code.google.com/p/googleappengine/issues/detail?id=8659

管理コンソールのLogsページで検索条件に'Since'の代わりに'Until'と表示されていた問題を修正しました。



Search APIをあまり触ってないのでその辺怪しいですが、とりあえずの訳でした。
ツッコミ・ご指摘お待ちしております!





このエントリーをはてなブックマークに追加