Men-deploy fungsi Cloud Run

Panduan ini menunjukkan cara men-deploy fungsi Cloud Run dari kode sumber.

Proses deployment mengambil kode sumber dan setelan konfigurasi Anda, serta membuat image yang dapat dijalankan yang dikelola fungsi Cloud Run secara otomatis untuk menangani permintaan ke fungsi Anda.

Dasar-dasar deployment

Pengguna yang men-deploy fungsi Cloud Run harus memiliki peran IAM Developer Cloud Functions atau peran yang mencakup izin yang sama. Lihat juga Konfigurasi tambahan untuk deployment.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Gunakan perintah gcloud functions deploy untuk men-deploy fungsi:

    gcloud functions deploy YOUR_FUNCTION_NAME \
     --gen2 \
     --region=YOUR_REGION \
     --runtime=YOUR_RUNTIME \
     --source=YOUR_SOURCE_LOCATION \
     --entry-point=YOUR_CODE_ENTRYPOINT \
     TRIGGER_FLAGS
    

    Argumen pertama, YOUR_FUNCTION_NAME, adalah nama untuk fungsi yang di-deploy. Nama fungsi harus dimulai dengan huruf yang diikuti dengan maksimal 62 huruf, angka, tanda hubung, atau garis bawah, dan harus diakhiri dengan huruf atau angka. Nama layanan Cloud Run yang dibuat untuk fungsi Anda akan mengganti garis bawah dengan tanda hubung dan huruf besar akan dikonversi menjadi huruf kecil. Misalnya, Function_1 akan diberi nama function-1 di Cloud Run.

    • Flag --gen2 (opsional) menentukan bahwa Anda ingin men-deploy ke fungsi Cloud Run.

    • Flag --region menentukan region tempat men-deploy fungsi Anda. Lihat Lokasi untuk mengetahui daftar region yang didukung oleh fungsi Cloud Run.

    • Flag --runtime menentukan runtime bahasa yang digunakan fungsi Anda. Fungsi Cloud Run mendukung beberapa runtime. Lihat Runtime untuk mengetahui informasi selengkapnya.

    • Flag --source menentukan lokasi kode sumber fungsi Anda. Lihat bagian berikut untuk mengetahui detailnya:

    • Flag --entry-point menentukan titik masuk ke fungsi Anda dalam kode sumber. Ini adalah kode yang akan dijalankan saat fungsi Anda berjalan. Nilai flag ini harus berupa nama fungsi atau nama class yang sepenuhnya memenuhi syarat yang ada dalam kode sumber Anda. Lihat Titik entri fungsi untuk informasi selengkapnya.

    • Untuk menentukan pemicu fungsi Anda, flag tambahan (ditunjukkan sebagai TRIGGER_FLAGS di atas) diperlukan, bergantung pada pemicu yang ingin Anda gunakan:

      Flag pemicu Deskripsi pemicu
      --trigger-http Picu fungsi dengan permintaan HTTP(S). Lihat pemicu HTTP untuk informasi selengkapnya.
      --trigger-topic=YOUR_PUBSUB_TOPIC Picu fungsi saat pesan dipublikasikan ke topik Pub/Sub yang ditentukan. Lihat pemicu Pub/Sub untuk informasi selengkapnya.
      --trigger-bucket=YOUR_STORAGE_BUCKET Memicu fungsi saat objek dibuat atau ditimpa di bucket Cloud Storage yang ditentukan. Lihat Pemicu Cloud Storage untuk mengetahui informasi selengkapnya.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Memicu fungsi dengan Eventarc saat ada peristiwa yang cocok dengan filter yang ditentukan. Lihat Pemicu Eventarc untuk mengetahui informasi selengkapnya dan opsi tambahan.

      Secara opsional, Anda dapat menentukan opsi konfigurasi, jaringan, dan keamanan tambahan saat men-deploy fungsi.

      Untuk referensi lengkap tentang perintah deployment dan flag-nya, lihat dokumentasi gcloud functions deploy.

      Untuk mengetahui beberapa contoh perintah deployment, lihat Contoh command line.

Setelah deployment berhasil, fungsi akan muncul dengan tanda centang hijau di halaman ringkasan Cloud Run di konsol Google Cloud.

Deployment awal fungsi mungkin memerlukan waktu beberapa menit, sementara infrastruktur yang mendasarinya disiapkan. Deployment ulang fungsi yang ada akan lebih cepat, dan traffic yang masuk akan otomatis dimigrasikan ke versi terbaru.

Men-deploy dari mesin lokal

Bagian ini menjelaskan cara men-deploy fungsi dari kode sumber yang terletak di mesin lokal Anda.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Ikuti petunjuk deployment di atas menggunakan perintah gcloud functions deploy.

    Untuk tanda --source, tentukan jalur sistem file lokal ke direktori utama kode sumber fungsi - lihat Struktur direktori sumber. Direktori kerja saat ini digunakan jika flag ini dihilangkan.

    Anda juga dapat menggunakan flag --stage-bucket secara opsional untuk menentukan bucket Cloud Storage yang akan menjadi tujuan upload kode sumber sebagai bagian dari deployment.

    Selama proses upload kode sumber, Cloud Run mengecualikan file yang tidak diperlukan melalui file .gcloudignore.

Men-deploy dari Cloud Storage

Bagian ini menjelaskan cara men-deploy fungsi dari kode sumber yang terletak di bucket Cloud Storage. Kode sumber harus dikemas sebagai file ZIP.

Agar fungsi Cloud Run dapat membaca dari bucket Cloud Storage, agen layanan fungsi Cloud Run harus memiliki izin storage.objects.get. Jika bucket sumber berada dalam project yang sama dengan fungsi Anda, izin akan otomatis diberikan. Jika bucket berada di project yang berbeda, Anda harus memberikan izin kepada agen layanan secara manual.

Lihat artikel Menggunakan izin IAM dalam dokumentasi Cloud Storage untuk mendapatkan informasi tentang cara mengontrol akses ke bucket.

Dengan izin ini, Anda sekarang dapat men-deploy fungsi dari Cloud Storage:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Ikuti petunjuk deployment di atas menggunakan perintah gcloud functions deploy.

    Untuk flag --source, tentukan jalur Cloud Storage, dimulai dengan gs://. Objek di jalur harus berupa file ZIP yang berisi kode sumber fungsi. File sumber fungsi Anda harus berada di root file ZIP - lihat Struktur direktori sumber.

Contoh command line

Bagian ini menampilkan perintah deployment untuk beberapa contoh skenario deployment.

Untuk mengetahui detail tentang berbagai pemicu yang didukung oleh fungsi Cloud Run, lihat Pemicu fungsi Cloud Run.

Fungsi HTTP dari kode sumber lokal

Misalkan Anda memiliki fungsi HTTP sebagai berikut:

  • Fungsi ini menggunakan nodejs22.
  • Kode sumber terletak di direktori kerja saat ini (.).
  • Titik entri dalam kode diberi nama myHttpFunction.

Untuk men-deploy fungsi dengan nama my-http-function di region us-central1, gunakan perintah berikut:

gcloud functions deploy my-http-function \
  --gen2 \
  --region=us-central1 \
  --runtime=nodejs22 \
  --source=. \
  --entry-point=myHttpFunction \
  --trigger-http

Fungsi Pub/Sub dari kode sumber di Cloud Storage

Misalkan Anda memiliki fungsi berbasis peristiwa sebagai berikut:

  • Fungsi ini menangani peristiwa publikasi pesan Pub/Sub.
  • Fungsi ini menggunakan python312.
  • Kode sumber terletak di Cloud Storage di jalur. gs://my-bucket/my_function_source.zip.
  • Titik entri dalam kode diberi nama pubsub_handler.

Untuk men-deploy fungsi dengan nama my-pubsub-function di region europe-west1, dan mengaktifkan fungsi tersebut oleh pesan pada topik Pub/Sub my-topic, Anda menggunakan perintah berikut:

gcloud functions deploy my-pubsub-function \
  --gen2 \
  --region=europe-west1 \
  --runtime=python312 \
  --source=gs://my-bucket/my_function_source.zip \
  --entry-point=pubsub_handler \
  --trigger-topic=my-topic

Fungsi Cloud Storage dari kode sumber lokal

Misalkan Anda memiliki fungsi berbasis peristiwa sebagai berikut:

  • Fungsi ini menangani peristiwa penghapusan objek Cloud Storage.
  • Fungsi ini menggunakan java21.
  • Kode sumber terletak secara lokal di jalur ./functions/storage-function.
  • Titik entri dalam kode diberi nama myproject.StorageFunction.

Untuk men-deploy fungsi dengan nama my-storage-function di region asia-northeast1, dan mengaktifkan fungsi tersebut oleh peristiwa di bucket Cloud Storage my-bucket, gunakan perintah berikut:

gcloud functions deploy my-storage-function \
  --gen2 \
  --region=asia-northeast1 \
  --runtime=java21 \
  --source=./functions/storage-function \
  --entry-point=myproject.StorageFunction \
  --trigger-event-filters="type=google.cloud.storage.object.v1.deleted" \
  --trigger-event-filters="bucket=my-bucket"

Langkah berikutnya