Google App Engine を使用すると、Google のサーバー上で独自のカスタム アプリケーションを構築 して実行できます。App Engine アプリケーションは構築やメンテナンスが簡単で、トラフィックやデータ ストレージの増加に応じたスケーリングも容易です。アプリケーションのソースコードをアップロードするだけで、すぐに使用できます。App Engine の開発を初めて行う場合は、先に App Engine Python または Node.js クイックスタートをご確認ください。
Earth Engine と App Engine を組み合わせて、スケーラブルな地理空間 アプリケーションを構築できます。通常、App Engine コードには Earth Engine Python クライアント ライブラリが含まれており、Earth Engine バックエンドに サービス アカウントを使用してリクエストを送信します。これにより、 ログインしたり、Earth Engine ユーザーとして登録したりすることなく、誰でもアプリを使用できるというメリットがあります。 なお、各サービス アカウントには、Earth Engine の標準使用量上限が適用されます。
別の開発アプローチとして、 サービス アカウントではなくクライアントサイドの認証を使用する方法があります。このアプローチでは、 アプリケーションの訪問者は Earth Engine に登録してログインする必要があります。このアプローチのメリットは、Earth Engine へのリクエストがエンドユーザーの 認証情報を使用して行われるため、使用量上限に達する可能性が低いことです。課題は、ユーザーが アプリケーションを使用する前に Earth Engine に登録してログインする必要があることです。
GitHub の Earth Engine App Engine デモ ディレクトリには、一連の便利な App Engine のサンプルが含まれています。各サンプルの簡単な説明については、サンプルアプリのページをご覧ください。このドキュメントでは、サンプルや作成したカスタムアプリを設定してデプロイする方法について説明します。
Earth Engine を使用して App Engine アプリをデプロイする
以下の手順では、 デモアプリをデプロイする方法について説明します。 Python の手順は、Mac OS と Linux を対象としています。Windows で Python を使用している場合は、 こちらをお試しください。
Google Cloud プロジェクトで Earth Engine API を有効にする
Google Cloud プロジェクトを作成または選択し、 手順に沿って Earth Engine API を有効にします。
認証情報の設定
サービス アカウント
サービス アカウントを使用して、アプリを使用しているユーザーに代わって Earth Engine へのリクエストを承認できます。config.py ファイルには、サービス アカウントのメールアドレスと秘密鍵ファイルを使用した認証コードが含まれています。サービス アカウントで認証を設定するには、
次の手順に沿ってサービス アカウント
と秘密鍵ファイルを作成します。鍵ファイルに .private-key.json という名前を付け、プロジェクト ディレクトリに移動します。
Python
まだ設定していない場合は、まず Earth Engine Python API を設定します。手順に沿ってサービス アカウントをテストします 。
テストに成功したら、サービス アカウントのメールアドレスで config.py(またはソースコード内の同等のファイル)を更新します。(鍵ファイルはプロジェクト ディレクトリにあるため、パスは変更しないでください
)。
Node.js
npm install を実行して、プロジェクトの依存関係をインストールします。Earth Engine
Node.js API とその他の依存関係は、プロジェクト ディレクトリの ./node_modules
フォルダにコピーされます。インストールに失敗した場合は、最新バージョンの Node.js がインストールされていることを
確認してください。ライブラリを認証して初期化し、
my-project を Google Cloud プロジェクト ID に置き換えます。
const ee = require('@google/earthengine'); ee.data.authenticateViaPrivateKey('.private-key.json'); ee.initialize(null, null, null, null, null, 'my-project');
OAuth 2.0 クライアント ID
ユーザーがサービス アカウントではなく自分自身として認証できるようにするには、 Cloud プロジェクトから OAuth クライアント ID を設定する必要があります。手順は次のとおりです。
- 手順に沿ってクライアント ID を設定します。
- クライアント ID を使用するように
static/script.js(またはソースコード内の同等のファイル)を更新します。 ee_api_js.jsが/static/ディレクトリ(または同等のディレクトリ)にあることを確認します。 GitHub から直接ダウンロードするか 、npm からインストールします。または、EE API リポジトリ全体をすでにクローンしている場合は、ローカル ファイル システムのearthengine-api/javascript/buildからコピーします。
ローカル開発環境を設定する
Python
GitHub の各サンプル ディレクトリの手順に沿って、プロジェクトをダウンロードしてビルドします。
build.sh ファイルがある場合は、アプリケーションのルート
フォルダから次のコマンドを実行します。
./build.sh
設定スクリプトは、依存関係をダウンロードし、Google コマンドライン ツールがシステムにまだ存在しない場合はインストールします。Earth Engine Python API とその
依存関係は、プロジェクト ディレクトリの ./lib フォルダにコピーされます。
次のコマンドを実行して、App Engine コマンドライン ツールが使用可能であることを確認します。
dev_appserver.py
コマンドが見つからない場合は、Google App Engine SDK for Python を手動でダウンロードしてインストールしてみてください。コマンドが使用可能な場合は、 "error: too few arguments"というエラーで失敗します。
Node.js
設定は不要です。
ローカルで実行する
サービス アカウントが
登録
されたら、Earth Engine アクセス用に、サンプルをテストするときに認証に使用できます(config.py を参照)。まず、プロジェクト ディレクトリに移動して次のコマンドを実行し、サンプルをローカルでテストします。
Python
dev_appserver.py .
Node.js
npm install npm start
ブラウザで http://localhost:8080 にアクセスすると、ローカル サーバーで実行されているアプリが表示されます。変更(保存)を加えた場合は、 ページを更新すると自動的に反映されます。