Men-deploy ke App Engine

Halaman ini menjelaskan cara men-deploy aplikasi ke App Engine menggunakan Cloud Build. Jika Anda baru menggunakan Cloud Build, baca panduan memulai dan ringkasan konfigurasi build terlebih dahulu.

App Engine adalah platform serverless yang terkelola sepenuhnya untuk mengembangkan dan menghosting aplikasi web dalam skala besar. Untuk informasi App Engine selengkapnya, baca dokumentasi App Engine.

Sebelum memulai

  • Aktifkan App Engine API:

    Mengaktifkan App Engine API

  • Untuk menjalankan perintah gcloud di halaman ini, instal Google Cloud CLI.

  • Siapkan kode sumber aplikasi yang ingin Anda bangun dan deploy ke App Engine. Kode sumber Anda harus disimpan dalam repositori, seperti Cloud Source Repositories, GitHub, atau Bitbucket.

Izin IAM yang diperlukan

Berikan peran App Engine Admin dan Service Account User untuk akun layanan Cloud Build:

  1. Buka halaman Setelan Cloud Build:

    Buka halaman Cloud Build Settings

  2. Tetapkan status peran App Engine Admin dan peran Service Account User ke Enabled.

Mengonfigurasi deployment

Dengan Cloud Build, Anda dapat menggunakan image container yang tersedia secara publik untuk menjalankan tugas. Anda dapat melakukannya dengan menentukan image dalam step build di file konfigurasi Cloud Build.

App Engine menyediakan perintah gcloud app deploy, yang mem-build gambar dengan kode sumber Anda dan men-deploy gambar tersebut di App Engine. Anda dapat menggunakan image cloud-sdk sebagai langkah build dalam file konfigurasi untuk memanggil perintah gcloud dalam image. Argumen yang diteruskan ke langkah build ini akan diteruskan langsung ke gcloud CLI, sehingga Anda dapat menjalankan perintah gcloud pada image ini.

Untuk men-deploy aplikasi ke App Engine, gunakan langkah-langkah berikut:

  1. Buat file konfigurasi Cloud Build bernama cloudbuild.yaml atau cloudbuild.json.

  2. Di file konfigurasi:

    • Tambahkan kolom name untuk menentukan langkah build cloud-sdk.
    • Tambahkan kolom entrypoint untuk menggunakan alat bash saat cloud-sdk dipanggil.
    • Di kolom args, panggil perintah gcloud app deploy dan tetapkan timeout untuk App Engine digunakan saat memanggil Cloud Build. Ini diperlukan karena langkah-langkah dan build Cloud Build memiliki waktu tunggu default 10 menit, dan deployment App Engine dapat memerlukan waktu lebih lama dari itu untuk diselesaikan. Menetapkan waktu tunggu yang lebih lama akan memastikan bahwa waktu tunggu build tidak habis jika gcloud app deploy membutuhkan waktu lebih dari 10 menit untuk diselesaikan.

      Error waktu tunggu habis saat menggunakan lingkungan standar App Engine: Anda dapat mengonfigurasi waktu tunggu seperti yang dijelaskan di sini hanya saat menggunakan lingkungan fleksibel App Engine. Lingkungan standar App Engine tidak mengizinkan konfigurasi waktu tunggu build. Jika Anda menggunakan Cloud Build untuk men-deploy di lingkungan standar App Engine, dan build Anda gagal dengan error waktu tunggu, pertimbangkan untuk menggunakan lingkungan fleksibel App Engine atau Cloud Run, bukan lingkungan standar App Engine.

    • Tambahkan nilai build timeout yang berdurasi lebih dari 10 menit.

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: 'bash'
      args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy']
    timeout: '1600s'
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
        "entrypoint": "bash",
        "args": [
          "-c",
          "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy"
         ]
      }
      ],
      "timeout": "1600s"
    }
    
  3. Mulai build, dengan SOURCE_DIRECTORY sebagai jalur atau URL ke kode sumber dan REGION adalah salah satu region build yang didukung untuk memulai build:

     gcloud builds submit --region=REGION SOURCE_DIRECTORY
    

Deployment berkelanjutan

Anda dapat mengotomatiskan deployment software ke App Engine dengan membuat pemicu Cloud Build. Anda dapat mengonfigurasi pemicu untuk mem-build dan men-deploy gambar setiap kali memperbarui kode sumber.

Untuk mengotomatiskan deployment Anda ke App Engine:

  1. Di repositori Anda, tambahkan file konfigurasi dengan langkah-langkah untuk memanggil perintah gcloud app deploy:

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: 'bash'
      args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy']
    timeout: '1600s'
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
        "entrypoint": "bash",
        "args": [
          "-c",
          "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy"
         ]
      }
      ],
      "timeout": "1600s"
    }
    
  2. Buat pemicu build dengan file konfigurasi yang dibuat di langkah sebelumnya:

    1. Buka halaman Pemicu di Konsol Google Cloud:

      Buka halaman Pemicu

    2. Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.

    3. Klik Buka.

    4. Klik Create trigger.

      Di halaman Create trigger, masukkan setelan berikut:

      1. Masukkan nama untuk pemicu Anda.

      2. Pilih peristiwa repositori untuk memulai pemicu Anda.

      3. Pilih repositori yang berisi kode sumber dan file konfigurasi build Anda.

      4. Tentukan ekspresi reguler untuk nama cabang atau tag yang akan memulai pemicu Anda.

      5. Configuration: Memilih file konfigurasi build yang Anda buat sebelumnya.

    5. Klik Buat untuk menyimpan pemicu build Anda.

Setiap kali mengirim kode baru ke repositori, Anda akan otomatis memulai build dan deployment di App Engine.

Untuk informasi selengkapnya tentang cara membuat pemicu Cloud Build, lihat Membuat dan mengelola pemicu build.

Langkah selanjutnya