スケーラビリティの高い Java アプリケーションの作成、デプロイ、デバッグ、モニタリング

  • Eclipse、IntelliJ、ブラウザベースのコマンドラインを使用して GCP で Java アプリを作成する
  • Spring Boot アプリや Spark Java アプリをデプロイし、スケールする
  • Maven や Gradle ビルドツール プラグインを使用してビルドし、GCP にデプロイする
  • Java を使用して、GCP にあるフルマネージドの MySQL、PostgreSQL、NoSQL データベースにクエリを実行する
  • Java アプリを Kubernetes マネージド クラスタにデプロイする
  • Google が維持管理する OpenJDK または OpenJDK+Jetty9 Docker イメージ上でアプリを実行する
Java のイディオムに対応した広範な Java API とライブラリのセット
1
Cloud Platform Console プロジェクトを設定する
  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console プロジェクトを設定する

    プロジェクトの設定

    クリックして、以下を行います。

    • プロジェクトを作成または選択します。
    • プロジェクトに対して Cloud Storage API を有効にします。
    • サービス アカウントを作成します。
    • JSON として秘密鍵をダウンロードします。

    これらのリソースは、いつでも Cloud Console で表示、管理できます。

2
Cloud Storage バケットを設定する

Cloud Storage バケットを作成する

gsutil mb gs://[YOUR-BUCKET-NAME]

バケットを公開読み取り可能にして、ファイルを提供できるようにする

gsutil defacl set public-read gs://[YOUR_BUCKET_NAME]
3
Maven の依存関係を pom.xml に追加する
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-storage</artifactId>
  <version>1.22.0</version>
</dependency>
4
環境変数を app.yaml に追加する
env_variables:
  BUCKET_NAME: YOUR-BUCKET-NAME
5
コードを記述する
@SuppressWarnings("serial")
@WebServlet(name = "upload", value = "/upload")
@MultipartConfig()
public class UploadServlet extends HttpServlet {

  private static final String BUCKET_NAME = System.getenv("BUCKET_NAME");
  private static Storage storage = null;

  @Override
  public void init() {
    storage = StorageOptions.getDefaultInstance().getService();
  }

  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException,
      ServletException {
    final Part filePart = req.getPart("file");
    final String fileName = filePart.getSubmittedFileName();

    // Modify access list to allow all users with link to read file
    List<Acl> acls = new ArrayList<>();
    acls.add(Acl.of(Acl.User.ofAllUsers(), Acl.Role.READER));
    // the inputstream is closed by default, so we don't need to close it here
    Blob blob =
        storage.create(
            BlobInfo.newBuilder(BUCKET_NAME, fileName).setAcl(acls).build(),
            filePart.getInputStream());

    // return the public download link
    resp.getWriter().print(blob.getMediaLink());
  }
}
Java クイックスタート
本番環境の問題を検出して修正する

Google Stackdriver は、トレース、デバッグ、ロギング、モニタリング、レポートの機能を提供します。そのため、クラウドで実行されるアプリケーションの健全性やパフォーマンス、可用性から分析情報を取得し、すばやく本番環境の問題を検出して修正できます。

詳細
GCP コミュニティ上の Java

質問やご意見がありましたら、コミュニティに参加して質問したり、Google Cloud Platform 上での Java 対応をお手伝いする Google の専門家と会話したりできます。