Panduan memulai: Men-deploy layanan Kotlin ke Cloud Run

Pelajari cara membuat aplikasi Hello World sederhana, mengemasnya ke dalam image container, mengupload image container ke Artifact Registry, lalu men-deploy image container ke Cloud Run.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Guna menetapkan project default untuk layanan Cloud Run Anda:
     gcloud config set project PROJECT_ID
    Ganti PROJECT_ID dengan project ID Google Cloud Anda.
  11. Jika Anda dikenai kebijakan organisasi pembatasan domain yang membatasi pemanggilan yang tidak diautentikasi untuk project, Anda perlu mengakses layanan yang di-deploy seperti yang dijelaskan di bagian Menguji layanan pribadi.

  12. Aktifkan Cloud Run Admin API dan Cloud Build API:

    gcloud services enable run.googleapis.com \
        cloudbuild.googleapis.com

    Setelah Cloud Run Admin API diaktifkan, akun layanan default Compute Engine akan otomatis dibuat.

  13. Agar Cloud Build dapat mem-build sumber Anda, berikan peran Cloud Build Service Account ke akun layanan default Compute Engine dengan menjalankan perintah berikut:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role=roles/cloudbuild.builds.builder

    Ganti PROJECT_NUMBER dengan nomor project Google Cloud Anda, dan PROJECT_ID dengan project ID Google Cloud Anda. Untuk petunjuk mendetail tentang cara menemukan project ID dan nomor project, lihat Membuat dan mengelola project.

    Pemberian peran Akun Layanan Cloud Build ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk disebarkan.

Menulis aplikasi contoh

Untuk menulis aplikasi di Kotlin:

Buat aplikasi Spring Boot.

  1. Dari konsol, buat project web kosong baru menggunakan perintah cURL dan ekstrak:

    curl https://start.spring.io/starter.zip \
        -d language=kotlin \
        -d type=gradle-project-kotlin \
        -d bootVersion=3.2.5 \
        -d dependencies=webflux \
        -d javaVersion=17 \
        -d name=Demo \
        -d artifactId=helloworld \
        -d baseDir=helloworld \
        -d packageName=demo \
        -o helloworld.zip
    unzip helloworld.zip
    cd helloworld
    

    Langkah ini menghasilkan project Spring Boot.

    Untuk menggunakan perintah cURL ini di Microsoft Windows, Anda akan memerlukan salah satu command line berikut, atau secara opsional gunakan Spring Initializr (configuration preloaded) untuk membuat project:

  2. Perbarui class DemoApplication di src/main/kotlin/DemoApplication.kt dengan menambahkan @RestController untuk menangani pemetaan /:

    package demo
    
    import kotlinx.coroutines.delay
    import org.springframework.boot.autoconfigure.SpringBootApplication
    import org.springframework.boot.runApplication
    import org.springframework.web.bind.annotation.GetMapping
    import org.springframework.web.bind.annotation.RestController
    
    @SpringBootApplication
    @RestController
    class DemoApplication {
    
        @GetMapping("/")
        suspend fun index() = run {
            delay(10)
            "hello, world"
        }
    }
    
    fun main(args: Array<String>) {
        runApplication<DemoApplication>(*args)
    }
    
  3. Atur port server yang akan ditentukan oleh PORT variabel lingkungan di application.properties:

    server.port=${PORT:8080}
    

    Kode ini menghasilkan sebuah web server dasar yang memantau port yang ditentukan oleh variabel PORT lingkungan.

  4. Buat file project.toml di direktori root untuk menentukan versi Java:

    [[build.env]]
    name =  "GOOGLE_RUNTIME_VERSION"
    value = "17"
    

Aplikasi Anda sudah selesai dan siap untuk di-deploy.

Men-deploy ke Cloud Run dari sumber

Penting: Panduan memulai ini mengasumsikan bahwa Anda memiliki peran pemilik atau editor dalam project yang Anda gunakan untuk panduan memulai tersebut. Atau, lihat peran Developer Sumber Cloud Run untuk mengetahui izin yang diperlukan guna men-deploy resource Cloud Run dari sumber.

Men-deploy dari sumber secara otomatis akan mem-build image container dari kode sumber dan men-deploy-nya.

Untuk men-deploy dari sumber:

  1. Dalam direktori kode sumber Anda, deploy folder saat ini menggunakan perintah berikut:

    gcloud run deploy --source .
    1. Saat diminta memasukkan nama layanan, tekan Enter untuk menerima nama default, misalnya helloworld.

    2. Jika Anda diminta untuk mengaktifkan API tambahan pada project, misalnya, Artifact Registry API, tanggapi dengan menekan y.

    3. Saat Anda diminta untuk memasukkan region: pilih region pilihan Anda, misalnya us-central1.

    4. Jika Anda diminta untuk membuat repositori di region yang ditentukan, respons dengan menekan y.

    5. Jika Anda diminta untuk mengizinkan pemanggilan yang tidak diautentikasi: respons y. Anda mungkin tidak melihat perintah ini jika ada kebijakan organisasi pembatasan domain yang mencegahnya. Untuk mengetahui detail selengkapnya, lihat bagian Sebelum memulai.

    Lalu tunggu sebentar sampai proses deployment selesai. Jika berhasil, command line akan menampilkan URL layanannya.

  2. Kunjungi layanan yang telah di-deploy dengan membuka URL layanan pada browser web.

Lokasi Cloud Run

Cloud Run bersifat regional, berarti infrastruktur yang menjalankan layanan Cloud Run Anda terletak di region tertentu dan dikelola oleh Google agar tersedia secara redundan di semua zona dalam region tersebut.

Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama untuk memilih region tempat layanan Cloud Run dijalankan. Pada umumnya, Anda dapat memilih region yang paling dekat dengan pengguna Anda, tetapi Anda harus mempertimbangkan lokasi dari produk Google Cloud lain yang digunakan oleh layanan Cloud Run Anda. Menggunakan produk Google Cloud secara bersamaan di beberapa lokasi dapat memengaruhi latensi serta biaya layanan Anda.

Cloud Run tersedia di region berikut:

Tergantung harga Tingkat 1

  • asia-east1 (Taiwan)
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)
  • asia-south1 (Mumbai, India)
  • europe-north1 (Finlandia) ikon daun CO2 Rendah
  • europe-southwest1 (Madrid) ikon daun CO2 Rendah
  • europe-west1 (Belgia) ikon daun CO2 Rendah
  • europe-west4 (Belanda) ikon daun CO2 Rendah
  • europe-west8 (Milan)
  • europe-west9 (Paris) ikon daun CO2 Rendah
  • me-west1 (Tel Aviv)
  • us-central1 (Iowa) ikon daun CO2 Rendah
  • us-east1 (South Carolina)
  • us-east4 (North Virginia)
  • us-east5 (Columbus)
  • us-south1 (Dallas) ikon daun CO2 Rendah
  • us-west1 (Oregon) ikon daun CO2 Rendah

Tergantung harga Tingkat 2

  • africa-south1 (Johannesburg)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seoul, Korea Selatan)
  • asia-southeast1 (Singapura)
  • asia-southeast2 (Jakarta)
  • asia-south2 (Delhi, India)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Warsawa, Polandia)
  • europe-west10 (Berlin) ikon daun CO2 Rendah
  • europe-west12 (Turin)
  • europe-west2 (London, Inggris Raya) ikon daun CO2 Rendah
  • europe-west3 (Frankfurt, Jerman) ikon daun CO2 Rendah
  • europe-west6 (Zurich, Swiss) ikon daun CO2 Rendah
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montreal) ikon daun CO2 Rendah
  • northamerica-northeast2 (Toronto) ikon daun CO2 Rendah
  • southamerica-east1 (São Paulo, Brasil) ikon daun CO2 Rendah
  • southamerica-west1 (Santiago, Cile) ikon daun CO2 Rendah
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Jika sudah membuat layanan Cloud Run, Anda dapat melihat region di dasbor Cloud Run di Konsol Google Cloud.

Selamat! Anda baru saja men-deploy image container dari kode sumber ke Cloud Run. Cloud Run meningkatkan skala image container secara otomatis dan horizontal untuk menangani permintaan yang diterima, lalu menurunkan skala saat permintaan berkurang. Anda hanya membayar untuk CPU, memori, dan jaringan yang terpakai selama penanganan permintaan.

Pembersihan

Menghapus project pengujian Anda

Meskipun Cloud Run tidak mengenakan biaya saat layanannya tidak digunakan, Anda mungkin tetap dikenai biaya atas penyimpanan image container di Artifact Registry. Anda dapat menghapus image container atau menghapus project Google Cloud untuk menghindari tagihan. Menghapus project Google Cloud Anda akan menghentikan penagihan untuk semua resource yang digunakan dalam project tersebut.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Langkah berikutnya

Untuk informasi lebih lanjut dalam mem-build container dari kode sumber dan penerapan untuk repositori, lihat: