Cloud Code への移行

このドキュメントでは、IntelliJ ベースの App Engine プロジェクトを Cloud Code に移行する方法について説明します。

始める前に

  • Maven または Gradle ベースのプロジェクトで、古い App Engine SDK ベースのプラグイン(com.google.appengine.appengine-maven-plugincom.google.appengine:gradle-appengine-plugin など)を使っている場合は、最初に新しい Cloud SDK ベースの MavenGradle のプラグインに移行する必要があります。

  • 新しいプラグインは Datanucleus エンハンスメントに対応していません。この機能に依存している場合は、プロジェクトの Datanucleus(JDOJPA)エンハンスメントを手動で構成して Cloud Code に移行する必要があります。Datastore に対して読み書きを行う場合は、Objectify を ORM レイヤとして使用する必要があります。

新規プラグインのインストール

まだプラグインをインストールしていない場合は、次の手順でインストールします。

  • マシンの PATH に、サポート対象の IDE バージョンである JetBrains IDE バージョン 2019.3 以降(IntelliJ Ultimate / Community、PyCharm Professional / Community、WebStorm、GoLand など)が存在することを確認します。
  • IntelliJ IDEA(またはサポートされている JetBrains IDE)を開きます。
  • [File] > [Settings] > [Plugins] を選択して、プラグイン マーケットプレイス ウィンドウを開きます。Mac OS X の場合は、[IntelliJ IDEA] > [Preferences] > [Plugins] を選択します。
  • 「Cloud Code」プラグインを検索してインストールします。

    このとき、プラグインを有効にするために IDE の再起動を求められることがあります。

IntelliJ とプロジェクトの構成

プラグインをインストールしたら、次のように、IntelliJ とプロジェクトで新しいプラグインを使用するように構成します。

  1. 新しいプラグインと既存の App Engine 統合との競合について通知されたら、プロンプトを受け入れて古いプラグインを無効にします。

    プラグインの競合を知らせる通知と、それを無効にするプロンプトのスクリーンショット

  2. IntelliJ を再起動します。

  3. プロジェクトが古い形式であることが通知されたら、プロジェクトを新しい形式に変換するオプションをクリックします。

    プロジェクトが古い形式であることを知らせる通知と、それを変換するプロンプトのスクリーンショット

  4. 既存の App Engine Server インスタンスと Cloud インスタンスを削除し、新しい Cloud SDK を使用して再作成する必要があります。

    1. [Settings] > [Build, Execution, Deployment] > [Application Servers] に移動します。

    2. App Engine Dev インスタンスを選択し、[Delete](-)をクリックします。

    3. [Add](+)をクリックし、[Google App Engine Dev Server] を選択します。

      アプリサーバーのリストと、それらの削除と追加を行うアイコンのスクリーンショット

    4. [Settings] > [Build, Execution, Deployment] > [Clouds] に移動します。

    5. Google App Engine のクラウド インスタンスを選択し、[Delete](-)をクリックします。

    6. [Add](+)をクリックして、App Engine クラウド デプロイメント ターゲットを構成します。

      クラウド インスタンスのリストと、それらの削除と追加を行うアイコンのスクリーンショット

  5. App Engine のローカル サーバーの実行構成がある場合は、新しく構成した Application Server を使用するように更新する必要があります。

  6. [Tools] > [Cloud Code] に移動して、アプリケーションの実行とデプロイに使用可能なアクションのリストを確認します。詳細情報については、こちらのドキュメントをご覧ください。

  7. Maven または Gradle ベースのプロジェクトの場合は、最新の Gradle プラグインと Maven App Engine プラグインを使用するようにしてください。

ネイティブ IntelliJ プロジェクトの構成

ネイティブ IntelliJ プロジェクト(古い App Engine ファセットを使って手動で構成し、Gradle や Maven からは同期していないプロジェクト)のみ、App Engine の依存関係を更新します。

App Engine の依存関係は「外部ライブラリ」として構成され、以前の App Engine SDK のインストールによって提供されます。App Engine SDK のインストールを削除すると、アプリケーションはコンパイルされません。

外部ライブラリのリストを示すスクリーンショット

古い App Engine SDK に依存する関係を解消するには、App Engine Facet ライブラリのインポート機能を使用して、App Engine API の依存関係を次のように構成します。

  1. 古いプラグインの Datanucleus JDO/JPA エンハンスメントを使用しているユーザーは、Datanucleus エンハンスメントが Cloud Code プラグインでサポートされていないため、アプリケーションを Maven または Gradle に移植する必要があります。

  2. IntelliJ Project Structure の画面から、App Engine Standard モジュールの [dependencies] タブに移動します。

  3. App Engine の関連ライブラリをすべて削除します。

    外部ライブラリのリストと、それらの削除を行うアイコンのスクリーンショット

  4. 同じ Project Structure の画面で、App Engine モジュールの Google App Engine ファセットに移動します。

  5. [Libraries] パネルで、使用している App Engine の依存関係を選択します。

    選択可能なライブラリのリストを示すスクリーンショット

    このアクションにより、これらの依存関係が Maven Central から自動的に取得され、モジュールのクラスパスに追加されます。

  6. ローカルで実行してデプロイし、新しい構成が機能していることを確認します。

  7. これで、古い App Engine SDK を削除しても安全です。

サポートの利用

フィードバックを送信するには、GitHub で問題を報告します。または、Stack Overflow で質問します。