このページでは App Engineの機能をまとめています。機能は全てのプログラム言語上もしくはプログラム言語のサブセット上で動作します。 機能の挙動は通常使用できる全てのランライムで全て同じですが、例外もあります。
全てのApp Engine の機能はステータスや可用性に従って以下のように分類されます。:
ここで説明されている機能のいくつかはサードパティベンダーによって提供されており、それ以外はオープンソースプロジェクトです。 これらは third-party や Open Sourceとマークされています。
このページでの機能説明は、それらが提供する一般機能にしたがって分類されています:
App Identity | アプリケーションの識別子にアクセスし、OAuthを使ってその識別子を提示することができるのフレームワーク。 |
Blobstore | 大きすぎてデータストアサービスに格納できない動画や画像ファイルのような大きいデータオブジェクトを、あなたのアプリケーションで扱えるようにします。 |
Capabilities | 特定のサービスの停止時間や定期メンテナンスを検出し、それらを避けたりユーザーに通知したりできます。 |
Channel | あなたのアプリケーションとJavaScript クライアントの間で永続的な接続を作成し、ポーリングをしなくてもリアルタイムでメッセージを送信することができます。 |
Datastore | スケーラブルなデータストア、豊富なデータモデリングAPI、SQLに似たクエリ言語を持った、スキーマレスオブジェクトのデータストア。 |
Datastore Backup/Restore | 管理コンソールを使って、あなたのアプリケーションのデータストアへデータをエクスポートしたり、逆にインポートしたりできます。 |
Dedicated Memcache | あなたのアプリケーションに対して、排他的に割り当てられる固定キャッシュ要領を与えます。 |
Go Runtime | Go プログラミング言語であなたのアプリケーションをビルドします。 |
Google Cloud Endpoints | APIs for Androidや iOSやWebクライアント用のAPIを生成し、あなたのアプリのWebバックエンドの作成を簡単できます。 |
Google Cloud SQL | Googleクラウド上で動作するリレーショナルデータベースを作成、設定、使用することができるフルマネージドウェブサービス。 |
Google Cloud Storage Client Library | Google クラウドストレージに対して読み込みや書き込みを行い、内部エラー制御とリトライロジックを実装しています。 |
HRD Migration Tool | Blobstore や 非推奨の マスタ/スレイブ データストア に保存されているデータを、 GA のHigh Replication Datastoreへ移行します。 |
Images | 画像を操作、合成、修正します。画像形式を変換し、高さや色の周波数のような画像メタデータにアクセスします。 |
Java Runtime | Java プログラミング言語であなたのアプリケーションをビルドします。 |
Logs | プログラム上からアプリケーションにアクセスし、あなたのアプリケーションのログを要求します。 |
管理者およびGoogleアカウントのユーザーとしてEメールメッセージを送信し、様々なアドレスでメールを受信します。 | |
MapReduce | An optimized adaptation of the MapReduce computing model for efficient distributed computing over large data sets. |
Memcache | アプリケーションのパフォーマンスを向上させることができる、分散型インメモリデータキャッシュ。 |
Modules | アプリケーションを、ステートフルなサービスを共有できて安全な方法で通信できる論理コンポーネントに分割します。 |
Multitenancy | アプリケーションの一つのインスタンスから、簡単にデータを区分けして、多くのクライアント組織にサービスを提供します。 |
OAuth | Google アカウントとOAuth APIを使い、任意のApp EngineアプリケーションをOAuth サービスプロバイダにすることができます。 |
OpenID | 様々なウェブサービスにまたがってユーザーを認証するために使われるオープンテクノロジー。 |
Prospective Search | アプリケーションで、リアルタイムデータストリームに対しての合致検索クエリを行えるようにするクエリサービス。 |
PHP Runtime | PHPプログラミング言語でアプリケーションをビルドする。 |
Python Runtime | Python プログラミング言語でアプリケーションをビルドする。 |
Remote | 任意のアプリケーションからApp Engineサービスにアクセスする。 例えば、あなたのローカルマシン上で動作しているアプリからデータストア製品にアクセスする。 |
Scheduled Tasks | 決められた時間、もしくは一定間隔で実行されるタスクを設定する。 |
Search | プレーンテキスト、HTML、atom、数値、日付、地理的位置情報のような、構造化されたデータ上でGoogleのような検索を実行します。 |
SendGrid | SendGridのライブラリを使用してあなたのアプリからメールを送信し、開封・クリック・退会・スパム報告・その他を見ることができます。 |
Sockets | プログラム言語固有の内臓ライブラリを使用して、送信パケットをサポートします。 |
SSL for Custom Domains |
appspot.com のアドレスではなく、カスタムドメインからHTTPS とHTTP でアプリケーションを提供します。
|
Task Queue | 時間を置いて実行される小さな独立タスクを使用して、アプリケーションがユーザーのリクエスト外の作業をできるようにします。 |
Task Queue REST API | RESTを使ったApp Engineタスクキューの使用を有効にします。 |
Task Queue Tagging | Leases up to a specified number of tasks with the same tag from the queue for a specified period of time. |
Traffic Splitting | 届いたリクエストを別バージョンのアプリに振り分け、A/Bテストを行って新しい機能を段階的にロールアウトできます。 |
Twilio | あなたのアプリケーションで、電話の発着信、テキストメッセージの送受信、電話やタブレットやブラウザからのVoIP 通話が行えるようにします。 |
URL Fetch | Uses Googleのネットワークインフラを使い、ウェブ上のURLに対してHTTPやHTTPSリクエストを効果的に発行します。 |
Users | アプリケーションが、ユーザーのGoogle アカウントや OpenIDにログインして、そのユーザーに対してユニーク識別子を使って対処をできるようにします。 |
XMPP | アプリケーションで、XMPP互換のチャットメッセージサービスとのメッセージ送受信をできるようにします。 |
App Engine は安全なサンドボックス環境でJava 7 JVMを使ってJava ウェブアプリケーションを実行します。 この環境では、 App Engine はあなたのアプリのサーブレットを呼び出してリクエストの制御と応答の準備を行います。
App Engine ではウェブアプリケーションに標準の Java サーブレットを使用します。 あなたのアプリのサーブレットクラス、JavaServer ページ(JSP)、静的ファイル、データファイルに、 デプロイメントディスクリプタ(web.xml ファイル) とその他設定ファイルを付けて、標準の WARディレクトリ構造で配置してください。 App Engine はデプロイメントディスクリプタにしたがってサーブレットを呼び出してリクエストを作成します。
安全なサンドボックス環境では、サービスとセキュリティのためにあなたのアプリケーションは隔離されます。 アプリは、他のアプリのパフォーマンスやスケーラビリティに影響しない動作のみを実行できるようにしてください。 例えば、アプリはローカルファイルシステムへのデータの書き込みやネットワーク接続の作成といったいくつかの場合において、スレッドを作成することができません。 また、アプリは JNI やその他ネイティブコードを使うことができません。 JVM は、サンドボックスの制限の範囲内で動作するJavaバイトコードは実行することができます。
Eclipse 用のGoogle プラグインを使うと、新たなプロジェクトウィザードとApp EngineプロジェクトのIDE デバッグ設定が追加されます。 Java用の App Engine では、Google ウェブツールキット (GWT)を使って特に簡単にワールドクラスのウェブアプリケーションを開発、配置できます。 Eclipse プラグインには、 App Engine と GWTのSDKが付属しています。 NetBeans やIntelliJ用のサードパーティ製プラグインが使用できます。
App Engine は安全なサンドボックス環境でpre-loaded Python インタプリタを使って Python アプリケーションコードを実行します。 あなたのアプリはこの環境とやり取りすることによって、ウェブリクエストを受信し、処理を実行し、応答を送信します。
Python ウェブアプリはWSGIプロトコルを使って App Engine ウェブサーバとやり取りするので、アプリはWSGI互換のウェブプリケーションフレームワークを使用することができます。 App Engine にはwebapp2と呼ばれるシンプルなウェブアプリケーションフレームワークが含まれており、簡単に始められます。 大規模アプリケーションの場合、Djangoのように安定したサードパーティ製フレームワークを使用するのが良いでしょう。
このPython インタプリタは、Python 標準ライブラリと同様に、アプリケーションにインクルードしたPython モジュールを含むPythonコードを実行することができます。 このインタプリタはCコードを含むPythonモジュールを読み込むことができません; "純正の" Python環境です。
安全なサンドボックス環境では、サービスとセキュリティのためにあなたのアプリケーションは隔離されます。 アプリは、他のアプリのパフォーマンスやスケーラビリティに影響しない動作のみを実行できるようにしてください。 例えば、アプリはローカルファイルシステムへのデータの書き込みやネットワーク接続の作成はできません。 その代わり、アプリはApp Engineによって提供されるスケーラブルサービスを使用してデータの保存とインタネット経由の通信ができます。 アプリがサンドボックスの制限によって動作しない標準ライブラリからモジュールをインポートしようとした時、Python インタプリタは例外を発生させます。
PHP ランタイムはサンドボックスのPHP 5.4環境であなたのアプリケーションを実行します。 あなたのアプリはこの環境とやり取りすることによって、ウェブリクエストを受信し、処理を実行し、応答を送信します。 このランタイムは多くの標準PHP エクステンションをサポートしています。 Cで書かれたエクステンションはアップロードできません。
App Engine は独自のウェブサーバを実行します。このウェブサーバはコードを記載したapp.yamlファイルをアップロードして設定することができます。 このファイルは、あなたのアプリケーション届いたリクエストがどのようにPHPスクリプトに振り分けられるかを指定します。
安全なサンドボックス環境では、信頼性と拡張性とセキュリティのためにあなたのアプリケーションは隔離されます。 そのため、少数のPHPファンクションはApp Engineでは使用できず、それ以外のファンクションは間違った使い方をすると例外が発生します。 例えば、アプリはローカルファイルシステムへのデータの書き込みができません。 その代わり、アプリはGoogle によって提供されるスケーラブルサービスを使用してデータの保存・処理とインターネット経由の通信ができます。
PHP ランタイムでは、ビルドインの Google Cloud Storage stream wrapperが使用でき、 多くの標準PHP ファイルシステムファンクションを使ってGoogleクラウドストレージにアクセスできます。
App Engine では Go バージョン1.4が動作しています。 このSDK では標準のGo httpパッケージに似たインタフェースが使用できます。; Go でApp Engine アプリを記述するのは、スタンドアローンのGo ウェブサーバを記述するのと似ています。
このSDK には Go コンパイラと標準ライブラリが含まれています。; 依存関係が加わることはありません。 Go ランタイムはサンドボックス環境で実行されるので、標準ライブラリのファンクションのいくつかはエラーを返して使用できません。 例えば、アプリがローカルファイルシステムに書き込もうとしたり、ネットワーク接続の作成使用とした場合は os.ErrPermission が発生します。 データの保存やインタネット経由の通信をするには、App Engineのスケーラブルサービスを使わなければなりません。
あなたが自分でGo コンパイラを呼び出す必要はありません。 あなたのアプリは新しくコードをアップロードするとサーバ側で自動的にリビルドされます。 ローカル開発サーバを実行している場合は、ソースを変更した時にSDK が自動的にリコンパイルしますon-the-fly。
App Engineの Go ランタイム環境は goroutineをサポートしていますが、 それらはシングルスレッドでスケジュールされています。 Goroutineは平行してではなく同時に実行できます。アプリケーションのインスタンスは複数のリクエストを制御できます。 例えば、一つのリクエストがデータストアAPIの呼び出しを待っている場合、インスタンスはその間に別のリクエストを処理することができます。
管理VNホスティング管理 では、App Engineアプリケーションを設定の変更が可能なCompute Engine 仮想マシン(VMs)上で実行することができます。 この VMベースのホスティング環境は柔軟性がより高く、CPUとメモリのオプションがより多く使用できます。 管理VMs上で動作するアプリケーションはJavaやPythonのランタイムの制限を受けず、全てのthe Compute Engine machine typesにアクセスできます。 サードパーティ製のライブラリやフレームワークを自分のアプリに追加することもできます。
App Engine のデータストアは、アプリケーションに堅牢で拡張可能なストレージを提供する、スキーマレスな NoSQL データストアです。以下の機能を備えています。:
データストアはエンティティと呼ばれるデータオブジェクトを保持しています。 エンティティは一つ以上のプロパティを持ち、プロパティにはサポートされているデータ型(文字列、数値、他エンティティへの参照、のうちいずれか)の値が名前を付けて設定されています。 各エンティティは種類とキーによって識別されます。種類とはエンティティをクエリの目的ごとに分類分けするもので、キーとはその種類内でエンティティを一意に識別するためのものです。 データストアは、一つのトランザクションで複数の処理を実行できます。 定義により、全ての処理が成功しない限りトランザクションは成功しません; 処理のいずれかが失敗した場合トランザクションは自動的にロールバックします。 これは複数のユーザーが同一のデータに大して同時にアクセスや操作を行う分散型ウェブアプリケーションの場合に特に有効です。
管理コンソールのデータストア管理タブを使って選択したエンティティをバックアップしたり、バックアップからエンティティを復元したりできます。 バックアップにはBlobstore かGoogle クラウドストレージを使用できます。
管理コンソールのアプリケーション設定タブにあるこの移行ツールを使って、あなたのアプリケーションのデータを非推奨のマスタ/スレイブ データストアから 高レプリケーションデータストア(HRD)へ移行して下さい。 必ずアプリケーションを複製した上で、データを移行するようにしてください。 最適化された移行のためには、アプリケーションにいくつか修正をする必要があるかもしれません。
Google クラウド SQL はGoogleのクラウド上で動作する MySQL データベースです。 これはMySQLの全ての特性と機能を備えており、以下の通りいくつか追加された機能とサポートしていない機能があります。 Google クラウドSQL は簡単に使用でき、ソフトウェアのインストールや管理を必要とせず、小規模から中規模のアプリケーションに最適です。
Google クラウドSQL は以下の機能を備えています:
Blobstore API を使うと、アプリケーションは blobsと呼ばれるデータオブジェクトを扱うことができます。 これはデータストアサービスで使用できるオブジェクトよりも大きなサイズです。 Blobs は、動画や画像ファイルのような大きなファイルを扱う場合や、ユーザーに大きなデータファイルをアップロードさせる場合に便利です。 Blobs はHTTPリクエストでファイルをアップロードすることによって作成されます。 通常あなたのアプリケーションでは、ファイルアップロードフィールドが付いたフォームをユーザーに提示することでこれを行います。 このフォームが送信された時、 Blobstore はファイルコンテンツから blob を作成し、 blob キーと呼ばれるblobへの opaque referenceを返します。このblob キーは後でblobの提供に使用できます。 アプリケーションはユーザーのリクエストに対する応答内で完全なblob 値を提供することができ、 それはストリーミングファイルのようなインタフェースを使用することで直接読み取ることができます。
Google クラウドストレージは、大きなファイルを保存したり処理したりする場合に便利です。 さらに、 Cloud ストレージではアクセスコントロールリスト(ACLs)の使用、アップロードが中断した場合にそれを再開させる機能、他にも多くの機能があります。 (Google クラウドストレージクライアントライブラリはこの自動再開機能を使い、あなたが確実にデータをGoogle クラウドストレージへ送信できるようにします。)
Google クラウドストレージライブラリを使用することで、あなたのアプリケーションはGoogle クラウドストレージのbuckets からファイルを読み込んだり、ファイルを書き込んだりできます。 このライブラリは Google クラウドストレージに対しての読み込みや書き込みサポートしており、内部エラー制御とリトライロジックを実装しています。 そのため、そのためのコードをわざわざ記述する必要がありません。 さらに事前読み込み機能の付いた読み込みバッファも提供しており、あなたのアプリがさらに効果的に動作します。
Search APIは構造化されたデータ(テキストやHTML文字、atoms、日付、位置情報、数値)を含むドキュメントをインデックス化するためのモデルを提供します。 ドキュメントとインデックスは、検索処理用に最適化された永続保存領域に分けて保存されます。 あなたはインデックスを検索し、検索結果を整理して提示することができます。 このAPIは文字列フィールドのテキスト部分一致をサポートとしています。 検索APIでは任意の数のドキュメントをインデックス化できますが、一度の検索で取得できるのは10000個の合致ドキュメントまでです。 非常に多くの結果を取得する必要があるアプリケーションには、 App エンジンデータストアが適してきるかもしれません。
Prospective search は、あなたのアプリケーションでリアルタイムデータストリームに対して検索クエリを実行できるようにするクエリサービスです。 For every document presented, prospective search returns the ID of every registered query that matches the document.
Prospective search allows you to register a large set of queries and simultaneously match the queries against a single document. これは、ストリーミングデータ処理するアプリケーションの場合に特に有効です。 例えば:
ソーシャルネットワーキングサービス上の全ての更新やチャットルームで高頻度に書き込めるコメントに対して検索を行うアプリケーションなど。 通知、監視、フィルタリングサービスを提供するデータソースを処理するアプリケーション。 prospective searchを理解するには,従来の検索モデルと比較してみると良いでしょう。 Google検索のような従来型の検索アプリケーションにおいては、検索されたデータのインデックスを構築したりアクセスしたりしなければなりません。 各クエリは潜在的に大きなインデックスに大して分けて実行されなければならないため、 データを事前にインデックス化する必要があることで、リアルタイムのアプリケーションを作成するのが難しく高コストになっています。
Google Alertsのような prospective 検索のアプリケーションにおいては、 検索クエリを登録して、新しいドキュメントに対してリアルタイムにそれを合致判定します as the documents are inserted into your application。 これを使いライブデータの発生を効果的に監視できるアプリケーションを作成できます。 作成済みのインデックス化されたデータを使うことに限定されません。
アプリケーションでは、両方を組み合わせてベストな結果を得るために、しばしば従来型の検索とprospective 検索を両方使用します。 例えば、アプリケーションは従来型検索を使って過去にインデックス化されたドキュメントの合致を調べながら、prospective 検索を使って届いてすぐのドキュメントの合致を調べることができます。
App Engine ではメモリキャッシュサービスのクラスを二つサポートしています:
共有、専用いずれの場合も、メモリキャッシュは永続的なストレージではありません。キャッシュのLRU ポリシーに従い、キャッシュが一杯になるとキーが解放される可能性があります。 キャッシュ設定の変更やデータセンターのメンテナンス作業によって、キャッシュの一部または全部が消えることがあります。
専用メモリキャッシュは、あなたのアプリケーションに排他的に割り当てられた固定容量が提供されます。これはキャッシュサイズの一時間あたりのGBで料金が決まります。 キャッシュサイズを制御できるということは、アプリをより見積もり通りに実行でき、コストのかかるストレージへのアクセスを減らせるということです。
App Engine では二種類のログを保持しています。:
Logs API を使ってあなたのアプリケーションのログにアクセスすることができます。また管理コンソールからログにアクセスすることもできます。
Python | Java | PHP | Goで使用可能 [トップへ戻る]
Channel APIはアプリケーションとあなたとの間で永続的な接続を作成し、ポーリングをしなくてもリアルタイムでメッセージを送信することができます。
このAPIを使用するには、あなたのウェブページに JavaScript クライアントを追加しなければなりません。そのクライアントは以下のタスクを実行します:
サーバとして動作するアプリケーションは、以下を守る必要があります:
Google Cloud Endpoints consists of tools, libraries and capabilities that allow you to generate APIs and client libraries from an App Engine application, referred to as an API backend, to simplify client access to data from other applications. エンドポイントによって、ウェブクライアントとAndroidやAppleのiOSのようなモバイルクライアント向けのウェブバックエンドを簡単に作成できます。
モバイル開発者にとっては、エンドポイントを使うことで簡単には共有ウェブバックエンドを開発でき、またOAuth 2.0認証のような重要なインフラを使用できます。 これにより本来必要だった多くの作業を省くことができます。 さらに、API バックエンドは App Engine appなので、モバイル開発者はデータストアや Google クラウドストレージやメールや URL Fetchや Task キューやその他諸々といった、 App Engine上で使用できる全てのサービスと機能を使用することができます。そして最後に、バックエンドに App Engine を使用することで、開発者はシステム管理作業や負荷分散やスケーリングやサーバメンテナンスから解放されます。
エンドポイントを使わずにApp Engineバックエンド向けのモバイルクライアントを作成することは不可能です。 しかし、 App Engineとの通信を制御するラッパーを記述する必要がなくなるので、エンドポイントを使えばこの過程がが簡単になります。 エンドポイントから生成されたクライアントライブラリを使用することで、簡単に直接API呼び出しを行えます。
App Engine アプリケーションはアプリの管理者およびGoogle アカウントユーザーとしてEメールを送信することができます。 アプリは様々なアドレスでEメールを受信できます。 アプリはメールサービスを使ってメッセージを送信し、App Engineによって初期化されてアプリに送られたHTTPリクエスト形式のメッセージを受信します。
SendGrid を使って Google App EngineのEメールを強化できます。 SendGrid を使うことでメール配信能力が向上し、あなたのアプリが送信するメールで起こっていることを可視化できます。 SendGridのインタフェースかAPIを通して、開封・クリック・退会・スパム報告・その他の統計を見ることができます。
App Engine では、特別なApp Engineライブラリのインポートや特別な App Engine コードの追加をしなくても、全てのランタイムで通常の送信ソケットをサポートしています。 しかし、 ソケットを使用する時には、いくつかの制限と注意すべき動作があります。詳細はランタイムごとに異なります。詳細情報についてはランタイムのドキュメントを参照してください。
Twilio はビジネスコミュニケーション機能を強化し、開発者が音声・VoIP・メッセージ処理をアプリケーションへ埋め込めるようにします。 Twilio では必要な全てのインフラをクラウドベースのグローバル環境で仮想化し、Twilio コミュニケーションプラットフォームAPIを通じてそれを提供します。 アプリケーションは簡単に構築や拡張できます。使った分だけ支払う柔軟性とクラウドの信頼性によってもたらされる利便性を満喫してしてください。
Twilio Voice を使えば、あなたのアプリケーションは電話の発信や着信ができるようになります。 Twilio SMS を使えば、あなたのアプリケーションはテキストメッセージの送受信ができるようになります。 Twilio Client は電話やタブレットやブラウザからVoIP通話を行え、WebRTCをサポートしています。
App Engine アプリケーションをURLを取得することで他のアプリケーションと通信したり、ウェブ上の他のリソースにアクセスすることができます。 アプリは URL Fetch サービスを使って HTTPリクエストと HTTPS リクエストを発行し、応答を受け取ることができます。 この URL Fetch サービスは、効率とスケーリングのために Googleのネットワークインフラを使用しています。
App Engine アプリケーションは、Google トークのようなXMPP互換のチャットメッセージサービスとのメッセージ送受信ができます。 アプリでは、チャットメッセージの送受信、チャット招待の送信、ユーザーのチャット出席状況の要求、チャット状態の提示を行うことができます。 届いた XMPP メッセージは、ウェブリクエストと同様にリクエストハンラで処理されます。
考えられるチャットメッセージ使用方法として、チャット参加の自動化 ("チャットボット")、チャット通知、サービスへのチャットインタフェース追加があります。 XMPP サーバ (Google トークのような)と接続しているリッチクライアントでは、 XMPP を使って App Engine アプリケーションとリアルタイムにやり取りすることができます。このappによって初期化されたメッセージの受信もできます。 (Google トークを使っているクライアントではXMPP 接続をするためにユーザーのパスワードを使わなければならず、 Google アカウントクッキーは使用できないので注意してください。)
現在、アプリはグループチャットに参加することができません。アプリは"chat" と"normal"のタイプのメッセージのみ受信できます。アプリはRFC 3921で定義されたタイプのメッセージを送信できます。
タスクキュー APIを使用することで、アプリケーションはユーザーからの要求で開始されたユーザーリクエスト以外の作業を実行できます。 アプリでバックグラウンドでの作業を行う必要がある場合、タスクキュー API を使って作業をタスクと呼ばれる小さくまとめたユニットごとにまとめることができます。 アプリはタスクを後で実行するためにタスクキューに追加します。
App Engineでは二つの異なるキュー設定が使用できます:
REST インタフェースが使用でき、ウェブクライアントアプリからアプリケーションのタスクキューとタスクを管理できます。
Available in Python | Java | PHP and Go also implement the API as defined for Python [トップへ戻る]
The tagging API lets pull queue consumers lease a specified number of tasks with the same tag from a pull queue.
Available in Python | Java | Go [Back to top]
App Engine Cron サービスを使うことで、決められた時間、もしくは一定間隔で実行されるスケジュールタスクを設定できます。 これらのタスクは、一般的にはcron ジョブとして知られています。これらの cron ジョブはApp Engine Cron サービスによって自動的に実行されます。 例えば、これを使って毎日報告メールを送信し、10分ごとにキャッシュデータを更新し、1時間ごとにサマリーデータを更新することができます。
cron ジョブは指定された時間に HTTP GET リクエストを使ってURLを呼び出します。cronに呼び出された HTTP リクエストは最大で10分間実行できますが、他のHTTPリクエストと同様に制限を受けます。
無料アプリケーションは最大20個のスケジュールタスクを持つことができます。有料アプリケーションは最大100個のスケジュールタスクを持つことができます。
このImages API では画像データの表示や操作が行えます。 このAPIでは、画像フォーマット、横幅、高さ、カラー値のヒストグラムといった画像に関する情報が取得できます。 画像のサイズ変更、回転、反転、切り抜きができます。また、複数の画像を一つに合成したり、画質を自動的に上げたり、ファーマット間の変換を行う機能も持っています。
このImages サービスではアプリから画像データを直接受けることも、 Blobstore や Google クラウドストレージから受け取ったデータを使用することもできます。
App Engine MapReduce は 、データストアとタスクキューを含むApp Engine サービス上に構築されたオープンソースライブラリです。 使用にはアプリケーションにライブラリをインクルードする必要があり、以下の機能を提供します。:
アプリケーション識別サービスを使用することで、 アプリIDやURLのホスト部分を受け取ることでアプリケーションはそれが自分自身かを識別することができます。 アプリケーション識別を使ってURLやEメールアドレスを生成したり、 some run-time decisionを作成したりできます。
多くのGoogle APIはリクエスト元を識別するために OAuth assertions をサポートしています。 アプリ識別 API は、リクエスト元がアプリケーション自体であることを提示するために使用されるトークンを作成できます。 このトークンは、呼び出し元アプリケーションを識別するために呼び出しのHTTPヘッダに含めることができます。 この OAuth トークンは Google の提供するシステムでのみ動作します。 しかし、このAPIの基礎部分の署名技術を使って他のシステムに対してアプリケーションの身元を提示することができます。
Available in Python | Java | PHP | Go [Back to top]
OpenID は様々なウェブサービスにまたがってユーザーを認証するために使われるオープンテクノロジーです。 ユーザーはOpenID providerとして活動するサービス上でアカウントを作成します。 providerにログインした時、ユーザーは他サービスへのログインに使用できるOpenID identifierを取得します。 この他サービスはOpenID relying partiesと呼ばれます。
App Engine アプリをOpenID relying partyとして設定し、ログインに OpenIDを使えるようにすることができます。
Capabilities API を使って、サービス(Images サービスなど)もしくはサービスの特定の機能(データストアの書き込みや読み込みなど)の可用性を調べます。 機能を使用する前にその可用性をテストすることで、アプリケーションの停止時間を減らすことができます。 このAPIをサポートしているサービスは、あなたが使用しているランタイムごとに異なります。
モジュールは、大規模なアプリケーションを、ステートフルなサービスの共有と安全な方法での通信が可能なロジカルコンポーネントに分割するために使用されます。 ユーザーのリクエストを制御するアプリは、以下のような他のタスクを制御する独立モジュールが含まれていることがあります:
モジュールは異なるバージョン、パフォーマンスレベル、承認を持つことができます。 実行中に、特定のモジュールは一つ上のインスタンスを持ち、インスタンスは静的もしくは動的に管理されます。 届いたリクエストは、適切なモジュールの既存もしくは新規インスタンスに振り分けられます。
スケーリングの種類によって、インスタンス作成の挙動が変わります。 スケーリングタイプは三つあります。 各タイプごとに様々なインスタンスクラスが使用でき、CPUやメモリの性能が異なります:
Multitenancy is a software architecture in which one instance of an application, running on a remote server, serves many client organizations, or tenants.
Google App Engine ではネームスペースマネージャーを持つネームスペースAPIを使用できます。 また、ネームスペースAPI は他のネームスペース対応APIに組み込まれています。 ネームスペースマネージャー内にネームスペースを設定した時、既定では全てのネームスペース対応APIはそのネームスペースを使用します。 これにより、各tenantごとに専用のネームスペースを設定することでtenants 間のデータを分割することができます。 例えば、データストアAPIでネームスペースを使用すると、全てのユーザーは同じデータスキームを共有できますが、ユーザーごとに表示されるコンテンツは異なります。
ネームスペース API は Google Appsに組み込まれており、あなたのGoogle Apps ドメインをカレントネームスペースとして使用できます。 Google Appsではあなたのアプリを独自ドメインに配置できるので、 Google Apps アカウントにリンクされた全てのドメインに専用のネームスペースを簡単に設定できます。
外部アプリケーションが、App Engineサービス対して透過的にアクセスできるようになります。 例えばRemote APIを使用して、あなたのローカルマシンで実行しているアプリからデータストア製品にアクセスすることができます。
アプリケーションをappspot.com
アドレスではなくカスタムドメインで、HTTPS のHTTPの両方でサービス提供できるようにします。
長い時間をかけてゆっくりとアプリの機能をロールアウトし、A/B テストをできるようにします。 トラフィック分割は、届いたリクエストをあなたのアプリの異なるバージョンに分割することで動作します。
App Engine アプリケーションでは、三つの方法のうちから一つを選んでユーザーを認証することができます: Google アカウント、もしくはあなたが所有するGoogle Apps ドメインのアカウント、もしくは OpenID 識別子。 (OpenIDのサポートはまたベータ版なので注意してください。) アプリケーションは現在のユーザーが既にログインしているかを判別したり、ユーザーをログインさせるために適切なページへリダイレクトすることができます。 あなたのアプリがGoogle アカウント認証を使用している場合は、ユーザーに新しいアカウントを作成させるためにリダイレクトすることもできます。 ユーザーがアプリケーションにログインしている間は、アプリはユーザーのEメールアドレス(もしくは、あなたのアプリでOpenIDを使用している場合はOpenID識別子)にアクセスできます。 またアプリは現在のユーザーが管理者かどうかも判別でき、アプリに管理専用エリアを簡単に実装できます。