従来のバンドル サービスで提供される機能の大部分が 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)を使用する方法があります。
画像のサイズ変更、変換、操作を行うには、GD や ImageMagick などの画像処理ライブラリを使用します。 サードパーティ ライブラリを使用する場合は、ライブラリを依存関係として追加し、ライブラリの API を呼び出すようにコードを更新します。
また、App Engine Images サービスでは、サービス提供 URL を使用して画像のサイズ変更を処理することで、アプリケーションへの動的リクエストを回避する機能も提供されます。同様の機能は、サイズが変更された画像を事前に生成し、Cloud Storage にアップロードして配信することでも実現できます。または、画像のサイズ変更機能が用意されているサードパーティ コンテンツ配信ネットワーク(CDN)サービスを利用することもできます。
ロギング
Cloud Logging を使用するように、アプリを更新することをおすすめします。Cloud Logging では、ログ エクスプローラのログの表示、ログのダウンロード、重大度によるメッセージのフィルタリング、特定のリクエストとのアプリ メッセージの関連付けなどの機能がサポートされています。別の方法では、構造化された特定のデータを JSON オブジェクト内に持つログメッセージを書き込むことで、こうした機能を有効にできます。 詳細については、ログの書き込みと表示をご覧ください。
メール
メールを送信するには、SendGrid、Mailgun、Mailjet などのサードパーティのメール プロバイダを使用します。これらのサービスはいずれも、アプリケーションからメールを送信するための 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 API の oauth2.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 ベースの任意の認証メカニズムを使用します。
- OAuth 2.0 と OpenID Connect。任意のプロバイダからのフェデレーション ID を提供します。Google は OpenID Connect の ID プロバイダです。その他のプロバイダも利用できます。
- Firebase Authentication。ユーザー名 / パスワードを使用した認証を提供し、Google、Facebook、Twitter などと連携した ID を提供します。
- Google Identity Platform。Google ユーザー アカウントを認証、承認するための多くのオプションを備えています。
- Auth0。さまざまな ID プロバイダおよびシングル サインオン機能を使った認証を提供します。