在 Google Cloud Platform 中使用 Java

免費試用 查看說明文件

建構、部署及監控高擴充性的 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 API 和資料庫
1
設定 Cloud Platform Console 專案
  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Set up a Cloud Console project.

    Set up a project

    Click to:

    • Create or select a project.
    • Enable the Cloud Storage API for that project.
    • Create a service account.
    • Download a private key as JSON.

    You can view and manage these resources at any time in the Cloud Console.

2
設定 Cloud Storage 值區

建立 Cloud Storage 值區:

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

值區必須設為可公開讀取的狀態,才能提供檔案:

gsutil defacl set public-read gs://[YOUR_BUCKET_NAME]
3
在 pom.xml 中新增 Maven 依附元件
<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 Ops Management 提供追蹤、偵錯記錄、監控和錯誤回報功能,可讓您深入掌握雲端應用程式的健康狀態、效能和可用性,更快找出實際工作環境中的問題並加以修正。

瞭解詳情
歡迎加入 GCP 的 Java 社群討論空間

有任何想法或疑問嗎?加入我們的社群後,您可以提出問題,或是和協助在 Google Cloud Platform 建構 Java 支援服務的 Google 專家交流聯繫。