Men-deploy fungsi Cloud Run (generasi ke-1)
Panduan ini menunjukkan cara men-deploy fungsi Cloud Run dari kode sumber.
Proses deployment mengambil kode sumber dan setelan konfigurasi Anda, lalu membangun image yang dapat dijalankan yang berfungsi oleh Cloud Run mengelola secara otomatis untuk menangani permintaan ke fungsi Anda.
Dasar-dasar deployment
Pengguna yang men-deploy fungsi Cloud Run harus memiliki Developer fungsi Cloud Run Peran IAM atau peran yang menyertakan izin yang sama. Lihat juga Konfigurasi tambahan untuk deployment.
Pilih tab untuk mendapatkan petunjuk tentang cara men-deploy fungsi menggunakan gcloud CLI atau Google Cloud Console.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
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 diawali dengan huruf diikuti dengan maksimal 62 huruf, angka, tanda hubung, atau garis bawah, dan harus diakhiri dengan huruf atau angka.Flag
--gen2
menentukan bahwa Anda ingin men-deploy ke fungsi Cloud Run. Mulai September 2024, hal ini menjadi setelan default. Untuk men-deploy ke generasi ke-1, gunakan--no-gen2
.Flag
--region
menentukan region tempat men-deploy fungsi Anda. Lihat Lokasi untuk daftar wilayah yang didukung oleh fungsi-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=EVENT_TYPE
[--trigger-resource=RESOURCE]Memicu fungsi saat peristiwa yang ditentukan terjadi. Menentukan resource diperlukan untuk beberapa jenis peristiwa. Lihat Pemicu yang didukung dalam fungsi Cloud Run (generasi ke-1) untuk informasi selengkapnya. 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.
Konsol
Buka halaman ringkasan fungsi Cloud Run di Konsol Google Cloud:
Pastikan project Google Cloud tempat Anda ingin men-deploy Fungsi Cloud Run dipilih.
Klik Create function.
Di kolom Environment, pilih 1st generasi.
Di kolom Nama fungsi, masukkan nama untuk fungsi Anda. 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
Di kolom Region, pilih region untuk men-deploy fungsi Anda.
Di bagian Pemicu, ikuti langkah-langkah berdasarkan lingkungan yang Anda pilih:
- Di bagian HTTPS Authentication, pilih metode autentikasi yang sesuai bergantung pada apakah Anda ingin mengizinkan pemanggilan fungsi Anda. Secara {i>default<i}, otentikasi dilakukan tidak diperlukan. Lihat Mengautentikasi untuk pemanggilan untuk informasi selengkapnya.
- Di kolom Jenis pemicu, pilih jenis pemicu. Lihat Pemicu yang didukung dalam fungsi Cloud Run (generasi ke-1) untuk mengetahui detail selengkapnya.
- Lengkapi kolom tambahan untuk jenis pemicu yang Anda pilih.
- Klik Simpan.
Anda juga dapat meluaskan bagian Runtime, build... di akhir untuk konfigurasi tambahan dan opsi keamanan.
Klik Berikutnya untuk berpindah ke langkah Kode.
Di kolom Runtime, pilih runtime bahasa yang digunakan fungsi Anda. Fungsi Cloud Run mendukung beberapa runtime - lihat Runtime untuk mengetahui informasi selengkapnya.
Di kolom Titik entri, masukkan titik entri 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 - lihat Titik entri fungsi untuk mengetahui informasi selengkapnya.
Di kolom Kode sumber, pilih untuk cara Anda akan menyediakan kode sumber fungsi yang sesuai. Lihat bagian berikut untuk mengetahui detailnya:
Klik Deploy.
Setelah deployment berhasil, fungsi akan muncul dengan tanda centang hijau di halaman ringkasan fungsi 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.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
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.Saat mengupload kode sumber, fungsi Cloud Run mengecualikan yang tidak diperlukan file melalui
.gcloudignore
.
Konsol
- Ikuti petunjuk deployment di atas menggunakan Google Cloud Console sampai Anda mencapai kolom Kode sumber.
- Di kolom Kode sumber, pilih Upload ZIP.
- Di kolom Bucket tujuan, klik Telusuri untuk memilih bucket Cloud Storage yang akan menjadi tujuan upload kode sumber Anda sebagai bagian dari deployment.
- Di kolom ZIP file, klik Telusuri untuk memilih file ZIP yang akan diupload dari sistem file lokal Anda. File sumber fungsi Anda harus berada di root file ZIP - lihat Struktur direktori sumber.
- Klik Deploy.
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, Anda harus memberikan izin
Izin storage.objects.get
ke akun yang melakukan deployment.
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:
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Ikuti petunjuk deployment di atas menggunakan perintah
gcloud functions deploy
.Untuk flag
--source
, tentukan jalur Cloud Storage, dimulai dengangs://
. 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.
Konsol
- Ikuti petunjuk deployment di atas menggunakan Google Cloud Console sampai Anda mencapai kolom Kode sumber.
- Di kolom Kode sumber, pilih ZIP dari Cloud Storage.
- Di kolom Lokasi Cloud Storage, klik Telusuri untuk memilih file ZIP dari Cloud Storage. File sumber fungsi Anda harus berada di root file ZIP - lihat Struktur direktori sumber.
- Klik Deploy.
Men-deploy dari editor inline Google Cloud Console
Bagian ini menjelaskan cara menulis dan men-deploy fungsi langsung dari Google Cloud Console menggunakan editor inline yang disediakan.
- Ikuti petunjuk deployment di atas menggunakan Google Cloud Console sampai Anda mencapai kolom Kode sumber.
- Di kolom Kode sumber, pilih Editor Inline.
- Gunakan editor yang disediakan untuk membuat atau mengedit file sumber seperlunya - lihat
Struktur direktori sumber.
- Panel kiri mencantumkan file sumber dan memungkinkan Anda membuat, mengganti nama, dan menghapus file.
- Panel kanan adalah editor teks yang memungkinkan Anda mengedit konten file.
- Klik Deploy.
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 Node.js 20.
- Kode sumber terletak di direktori kerja saat ini (
.
). - Titik entri dalam kode diberi nama
myHttpFunction
.
Untuk men-deploy fungsi ke fungsi Cloud Run dengan nama my-http-function
di region us-central1
, gunakan perintah berikut:
gcloud functions deploy my-http-function \
--no-gen2 \
--region=us-central1 \
--runtime=nodejs20 \
--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 Python 3.12.
- Kode sumber ada di Cloud Storage di jalur
gs://my-bucket/my_function_source.zip
. - Titik entri dalam kode diberi nama
pubsub_handler
.
Untuk men-deploy fungsi ke fungsi Cloud Run dengan nama
my-pubsub-function
di region europe-west1
, dan memiliki fungsi
dipicu oleh pesan pada topik Pub/Sub my-topic
, Anda menggunakan
perintah berikut:
gcloud functions deploy my-pubsub-function \
--no-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 Java 17.
- Kode sumber terletak secara lokal di jalur
./functions/storage-function
. - Titik entri dalam kode diberi nama
myproject.StorageFunction
.
Untuk men-deploy fungsi ke fungsi Cloud Run dengan nama
my-storage-function
di region asia-northeast1
, dan memiliki fungsi
dipicu oleh peristiwa di bucket Cloud Storage my-bucket
, Anda menggunakan
perintah berikut:
gcloud functions deploy my-storage-function \
--no-gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-resource=gs://my-bucket \
--trigger-event=google.storage.object.delete
Langkah berikutnya
- Lihat detail tentang Pemicu fungsi Cloud Run.
- Pelajari proses build fungsi Cloud Run.
- Mempelajari fungsi Cloud Run tambahan opsi konfigurasi.
- Pelajari cara mengamankan fungsi Cloud Run.
- Lihat Tutorial untuk mengetahui contoh kasus penggunaan tertentu untuk fungsi Cloud Run.