Google App Engine
初期プロジェクト: engine-main
最終プロジェクト: google-appengine-standard
このチュートリアルでは、KtorプロジェクトをGoogle App Engine標準環境に準備してデプロイする方法を説明します。このチュートリアルでは、開始プロジェクトとしてengine-mainサンプルプロジェクトを使用します。
前提条件
このチュートリアルを開始する前に、以下の手順を実行する必要があります。
- Google Cloud Platformに登録します。
- Google Cloud SDKをインストールして初期化します。
- 以下のコマンドでJava用のApp Engine拡張機能をインストールします。
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リポジトリからプラグインを参照します。
pluginManagement {
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ブロックにプラグインを適用します。
plugins {
id("com.google.cloud.tools.appengine") version "2.8.0"
}build.gradle.ktsファイルに以下の設定でappengineブロックを追加します。
import 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をプロジェクト名に置き換えます)。
runtime: java21
entrypoint: 'java -jar google-appengine-standard-all.jar'entrypointオプションには、アプリケーション用に生成されたfat JARを実行するために使用されるコマンドが含まれています。
サポートされている構成オプションに関する詳細なドキュメントは、Google App Engineドキュメントで確認できます。
アプリケーションのデプロイ
アプリケーションをデプロイするには、ターミナルを開き、以下の手順に従います。
- まず、アプリケーションリソースを保持するトップレベルのコンテナであるGoogle Cloudプロジェクトを作成します。例えば、以下のコマンドは
ktor-sample-app-engineという名前でプロジェクトを作成します。
gcloud projects create ktor-sample-app-engine --set-as-default- Cloudプロジェクト用にApp Engineアプリケーションを作成します。
gcloud app create- アプリケーションをデプロイするには、
appengineDeployGradleタスクを実行します...
./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。
