Google App Engine
初期プロジェクト: engine-main
最終プロジェクト: google-appengine-standard
このチュートリアルでは、KtorプロジェクトをGoogle App Engine標準環境に準備してデプロイする方法を説明します。このチュートリアルでは、engine-mainサンプルプロジェクトを開始プロジェクトとして使用します。
前提条件
このチュートリアルを開始する前に、以下の手順を実行する必要があります。
- Google Cloud Platformに登録します。
- Google Cloud SDKをインストールして初期化します。
- 以下のコマンドでJava用のApp Engine拡張機能をインストールします。Bash
gcloud components install app-engine-java
サンプルアプリケーションのクローン作成
サンプルアプリケーションを開くには、以下の手順に従います。
- Ktorドキュメンテーションリポジトリをクローンし、codeSnippetsプロジェクトを開きます。
- engine-mainモジュールを開きます。
Ktorは、サーバーを作成および構成するための2つのアプローチ(コード内または構成ファイルを使用)を提供していることに注意してください。このチュートリアルでは、両方のアプローチでデプロイプロセスは同じです。
アプリケーションの準備
ステップ1: Shadowプラグインの適用
このチュートリアルでは、fat JARを使用してアプリケーションをGoogle App Engineにデプロイする方法を示します。fat JARを生成するには、Shadowプラグインを適用する必要があります。build.gradle.kts
ファイルを開き、plugins
ブロックにプラグインを追加します。
plugins {
id("com.gradleup.shadow") version "8.3.9"
}
ステップ2: App Engineプラグインの構成
Google App Engine Gradleプラグインは、Google App Engineアプリケーションをビルドおよびデプロイするためのタスクを提供します。このプラグインを使用するには、以下の手順に従います。
settings.gradle.kts
ファイルを開き、以下のコードを挿入してCentral Mavenリポジトリからプラグインを参照します。groovypluginManagement { repositories { gradlePluginPortal() mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/ktor/eap") } resolutionStrategy { eachPlugin { if (requested.id.id.startsWith("com.google.cloud.tools.appengine")) { useModule("com.google.cloud.tools:appengine-gradle-plugin:${requested.version}") } } } }
build.gradle.kts
を開き、plugins
ブロックにプラグインを適用します。kotlinplugins { id("com.google.cloud.tools.appengine") version "2.8.0" }
build.gradle.kts
ファイルに以下の設定でappengine
ブロックを追加します。kotlinimport com.google.cloud.tools.gradle.appengine.appyaml.AppEngineAppYamlExtension configure<AppEngineAppYamlExtension> { stage { setArtifact("build/libs/${project.name}-all.jar") } deploy { version = "GCLOUD_CONFIG" projectId = "GCLOUD_CONFIG" } }
ステップ3: App Engine設定の構成
アプリケーションのApp Engine設定は、app.yamlファイルで構成します。
src/main
内にappengine
ディレクトリを作成します。このディレクトリ内に
app.yaml
ファイルを作成し、以下のコンテンツを追加します(google-appengine-standard
をプロジェクト名に置き換えます)。yamlruntime: java21 entrypoint: 'java -jar google-appengine-standard-all.jar'
entrypoint
オプションには、アプリケーション用に生成されたfat JARを実行するために使用されるコマンドが含まれています。サポートされている構成オプションに関する詳細なドキュメントは、Google App Engineドキュメントで確認できます。
アプリケーションのデプロイ
アプリケーションをデプロイするには、ターミナルを開き、以下の手順に従います。
まず、アプリケーションリソースを保持するトップレベルのコンテナであるGoogle Cloudプロジェクトを作成します。例えば、以下のコマンドは
ktor-sample-app-engine
という名前でプロジェクトを作成します。Bashgcloud projects create ktor-sample-app-engine --set-as-default
Cloudプロジェクト用にApp Engineアプリケーションを作成します。
Bashgcloud app create
アプリケーションをデプロイするには、
appengineDeploy
Gradleタスクを実行します...Bash./gradlew appengineDeploy
...そして、Google Cloudがアプリケーションをビルドおよび公開するまで待ちます。
...done. Deployed service [default] to [https://ktor-sample-app-engine.ew.r.appspot.com]
ビルド中に
Cloud Build has not been used in project
エラーが発生した場合は、エラーレポートの指示に従って有効にしてください。
完成した例は、こちらで確認できます: google-appengine-standard。