従来のバンドル サービスからの移行

従来のバンドル サービスで提供される機能の大部分が PHP 用 Cloud クライアント ライブラリで提供されるようになりました。詳細については、下記のおすすめの代替方法をご覧ください。

バンドルされていないソリューションへの移行がプロジェクトでできない場合、代替として PHP 7/8 以降のアプリで従来のバンドル サービスを使用を継続できる可能性があります。このアプローチでは、移行サイクルの後半でバンドルされていないサービスに移行できます。

Blobstore

データを格納および取得するには、Cloud クライアント ライブラリを介して Cloud Storage を使用します。 開始するには、Cloud Storage の使用をご覧ください。

Datastore

Java 8 ランタイムにバンドルされている Datastore API の代わりに、Datastore モードで Firestore を使用できます。Firestore は、Datastore の最新バージョンです。App Engine アプリで主に使用されるデータベースには、Datastore モードの使用をおすすめします。

画像

画像の配信には、Cloud Storage から行う方法、直接配信する方法、サードパーティのコンテンツ配信ネットワーク(CDN)を使用する方法があります。

画像のサイズ変更、変換、操作を行うには、GDImageMagick などの画像処理ライブラリを使用します。 サードパーティ ライブラリを使用する場合は、ライブラリを依存関係として追加し、ライブラリの API を呼び出すようにコードを更新します。

また、App Engine Images サービスでは、サービス提供 URL を使用して画像のサイズ変更を処理することで、アプリケーションへの動的リクエストを回避する機能も提供されます。同様の機能は、サイズが変更された画像を事前に生成し、Cloud Storage にアップロードして配信することでも実現できます。または、画像のサイズ変更機能が用意されているサードパーティ コンテンツ配信ネットワーク(CDN)サービスを利用することもできます。

ロギング

Cloud Logging を使用するように、アプリを更新することをおすすめします。Cloud Logging では、ログ エクスプローラのログの表示、ログのダウンロード、重大度によるメッセージのフィルタリング、特定のリクエストとのアプリ メッセージの関連付けなどの機能がサポートされています。別の方法では、構造化された特定のデータを JSON オブジェクト内に持つログメッセージを書き込むことで、こうした機能を有効にできます。 詳細については、ログの書き込みと表示をご覧ください。

メール

メールを送信するには、SendGridMailgunMailjet などのサードパーティのメール プロバイダを使用します。これらのサービスはいずれも、アプリケーションからメールを送信するための API を提供しています。

Memcache

アプリケーション データをキャッシュに保存するには、Memorystore for Redis を使用します。

モジュール

アプリケーションが実行しているサービスの情報を取得および変更するには、環境変数と App Engine Admin API を組み合わせて使用します。

サービス情報 アクセス方法
現在のアプリケーション ID GAE_APPLICATION 環境変数
現在のプロジェクト ID GOOGLE_CLOUD_PROJECT 環境変数
現在のサービス名 GAE_SERVICE 環境変数
現在のサービス バージョン GAE_VERSION 環境変数
現在のインスタンス ID GAE_INSTANCE 環境変数
デフォルトのホスト名 Admin API の apps.get メソッド
サービスのリスト Admin API の apps.services.list メソッド
特定のサービスのバージョンのリスト Admin API の apps.services.versions.list メソッド
特定のサービスのデフォルト バージョン(トラフィック分割を含む) Admin API の apps.services.get メソッド
特定のバージョンで実行中インスタンスのリスト Admin API の apps.services.versions.instances.list メソッド

Namespaces

Namespaces API では、テナントごとに一意の名前空間文字列を指定するだけで、マルチテナント アプリでテナント間でデータを分割できました。

Datastore は直接マルチテナンシーをサポートしていますが、他の Google Cloud サービスはサポートしていません。マルチテナントのアプリで他の Google Cloud サービスを使用する場合は、手動でマルチテナンシーを処理する必要があります。完全に分離されたサービス インスタンスを設定するには、Cloud Resource Manager API を使用してプログラムで新規プロジェクトを作成し、すべてのプロジェクトのリソースにアクセスできます。

OAuth

App Engine OAuth サービスを使用して OAuth 2.0 トークンを確認する代わりに、OAuth 2.0 APIoauth2.tokeninfo メソッドを使用します。

Compute Engine 上で Elasticsearch のような全文検索データベースをホストし、サービスからアクセスします。

タスクキュー

Cloud Tasks REST API、RPC API、または Google Cloud クライアント ライブラリを使用して非同期コードを実行するタスクをキューに入れ、PHP 7/8 App Engine 標準サービスを push ターゲットとして使用します。詳細については、タスクキューから Cloud Tasks への移行をご覧ください。

pull されて別個のワーカーで処理されるタスクやメッセージをキューに追加する場合など、pull キューを使用する多くのケースでは、類似の機能と配信の確実性を備えている Pub/Sub が適切な代替策となり得ます。

Java 11/17 の場合は、次の Cloud Tasks API を操作するサンプル プログラムをご覧ください。

ユーザー認証

Users API の代わりに、次のような HTTP ベースの任意の認証メカニズムを使用します。