この Codelab について
1. 始める前に
Cloud Shell はブラウザベースのコマンドライン ツールで、Google Cloud リソースにアクセスできます。Cloud Shell を使用すると、Cloud Console などのツールをシステムにインストールすることなく、Cloud Console のプロジェクトとリソースを簡単に管理できます。
Cloud Shell を使用して、ブラウザを離れることなく Spring Boot アプリをビルドして起動します。この操作を行うには、Spring Boot を使用したアプリの作成のサンプルコードを使用します。
前提条件
- Java プログラミング言語とツールに精通していること
- Linux の標準的なテキスト エディタ(Vim、Emacs、nano など)に関する知識
演習内容
- Cloud Shell を使用する。
- Cloud Shell で簡単な Spring Boot アプリを作成します。
- Cloud Shell のコードエディタを使用してアプリを編集します。
- Cloud Shell からアプリを起動します。
必要なもの
- Google Cloud プロジェクト
- Google Chrome などのブラウザ
2. 設定と要件
セルフペース型の環境設定
- Google アカウントをまだお持ちでない場合は、アカウントを作成する必要があります。Cloud Console にログインし、新しいプロジェクトを作成します。
プロジェクト ID を覚えておいてください。プロジェクト ID は、すべての Google Cloud プロジェクトで一意の名前です(イメージ内の名前はすでに使用されているため、使用できません)。これ以降、この Codelab では PROJECT_ID
と呼びます。
- 次に、Google Cloud リソースを使用するために、Cloud Console で課金を有効にする必要があります。Codelab を実行すると、コストが数千ドルを超えることはありませんが、より多くのリソースを使用する場合や、実行したままにしておくとさらに高くなることがあります。
Google Cloud の新規ユーザーは 300 ドル分の無料トライアルをご利用いただけます。
Cloud Shell
この Debian ベースの仮想マシンには、必要な開発ツールがすべて読み込まれています。5 GB の永続的なホーム ディレクトリが Google Cloud で実行されるため、ネットワーク パフォーマンスと認証が大幅に強化されます。この Codelab に必要なのはブラウザだけです(はい、Chromebook で動作します)。
- Cloud Console から Cloud Shell を有効にするには、[Cloud Shell をアクティブにする]
をクリックします(プロビジョニングと環境への接続にはそれほど時間はかかりません)。
Cloud Shell に接続すると、すでに認証は完了しており、プロジェクトに各自の PROJECT_ID
が設定されていることがわかります。
gcloud auth list
コマンド出力
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
コマンド出力
[core] project = <PROJECT_ID>
Cloud Shell では、デフォルトで環境変数もいくつか設定されます。これらの変数は、以降のコマンドを実行する際に有用なものです。
echo $GOOGLE_CLOUD_PROJECT
コマンド出力
<PROJECT_ID>
なんらかの理由でプロジェクトが設定されていない場合は、単に次のコマンドを実行します。
gcloud config set project <PROJECT_ID>
PROJECT_ID
が見つからない場合は、設定手順で使用した ID を確認するか、Cloud Console ダッシュボードで確認します。
- 最後に、デフォルトのゾーンとプロジェクト構成を設定します。
gcloud config set compute/zone us-central1-f
さまざまなゾーンを選択できます。詳しくは、リージョンとゾーンをご覧ください。
3. 新しい Spring Boot アプリケーションを初期化する
Spring Boot コマンドライン ツールをインストールしたら、新しい「Hello, World」ウェブアプリを初期化してブートストラップできます。
$ curl https://start.spring.io/starter.tgz \ -d dependencies=web -d baseDir=helloworld | tar -xzvf -
これにより、新しい Maven プロジェクトと、Maven の pom.xml
、Maven ラッパー、アプリ エントリ ポイントを含む新しいディレクトリが作成されます。
4. コードエディタで新しい RESTful サービスを作成する
- Cloud Shell メニューで [エディタを開く]
をクリックして、コードエディタを開きます。
- エディタが開いたら、
helloworld/src/main/java/com/example/demo/DemoApplication.java
ファイルを探します。
- コードを開いたら、
Hello
に応答する新しい RESTful コントローラを作成します。DemoApplication.java
ファイルで、現在の定義に加えて新しいHelloworld
クラス定義を追加します。
src/main/java/com/example/demo/DemoApplication.java
package com.example;
...
// Add the import
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
public class DemoApplication {
...
}
// Add the controller
@RestController
class Helloworld {
@GetMapping("/")
public String greet() {
return "Hello!";
}
}
- ファイルを保存します。
5. アプリをローカルで実行する
- Spring Boot プラグインを使用すると、通常どおり Spring Boot アプリを起動できます。
$ cd $HOME/helloworld $ ./mvnw -DskipTests spring-boot:run
- アプリが起動したら、Cloud Shell ツールバーの [ウェブでプレビュー]
をクリックし、[ポート 8080 でプレビュー] をクリックします。
ブラウザのタブが開き、起動したサーバーに接続されます。