Panduan memulai: Men-deploy fungsi Cloud Run menggunakan gcloud CLI
Halaman ini menunjukkan cara men-deploy fungsi HTTP Cloud Run menggunakan gcloud CLI.
Sebelum memulai
- 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.
-
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com - Guna menetapkan project default untuk layanan Cloud Run Anda:
Ganti PROJECT_ID dengan nama project yang Anda buat untuk panduan memulai ini.gcloud config set project PROJECT_ID
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.
- Tinjau harga Cloud Run atau perkirakan biaya dengan kalkulator harga.
-
Cloud Run Source Developer (
roles/run.sourceDeveloper) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di identitas layanan -
Logs Viewer (
roles/logging.viewer) di project Buat sebuah direktori baru bernama
helloworlddan ubah ke direktori tersebut:mkdir helloworld cd helloworldBuat file
package.jsondi direktorihelloworlduntuk menentukan dependensi Node.js:Buat file
index.jsdi direktorihelloworlddengan contoh Node.js berikut:Buat sebuah direktori baru bernama
helloworlddan ubah ke direktori tersebut:mkdir helloworld cd helloworldBuat file
requirements.txtdi direktorihelloworld, untuk menentukan dependensi Python:Langkah ini akan menambahkan paket yang dibutuhkan oleh contoh.
Buat file
main.pydi direktorihelloworlddengan contoh Python berikut:Buat sebuah direktori baru bernama
helloworlddan ubah ke direktori tersebut:mkdir helloworld cd helloworldBuat file
go.moduntuk mendeklarasikan go module:Buat file
hello_http.godi direktorihelloworlddengan contoh kode Go berikut:Buat sebuah direktori baru bernama
helloworlddan ubah ke direktori tersebut:mkdir helloworld cd helloworldBuat struktur project berikut untuk memuat direktori sumber dan file sumber:
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.javaPerbarui file
HelloWorld.javadengan contoh kode Java berikut:Buat file
pom.xmldi direktorihelloworld, lalu tambahkan dependensi Java berikut:Buat sebuah direktori baru bernama
helloworlddan ubah ke direktori tersebut:mkdir helloworld cd helloworldBuat file bernama
app.rblalu tempelkan kode berikut ke dalamnya:Buat file bernama
Gemfiledan salin kode berikut ke dalamnya:Jika Anda belum menginstal Bundler 2.0 atau yang lebih baru, instal Bundler.
Buat file
Gemfile.lockdengan menjalankan:bundle installBuat sebuah direktori baru bernama
helloworlddan ubah ke direktori tersebut:mkdir helloworld cd helloworldBuat file bernama
index.phplalu tempelkan kode berikut ke dalamnya:Jika Anda tidak menggunakan Cloud Shell, buat file
composer.jsondan tempelkan kode berikut ke dalamnya:Instal .NET SDK.
Dari konsol, buat project web kosong baru menggunakan perintah dotnet.
dotnet new web -o helloworld-csharpUbah direktori menjadi
helloworld-csharp:Ganti kode contoh di file project
helloworld-csharp.csprojdengan kode berikut:Ganti kode contoh dalam file
Program.csdengan kode berikut:Deploy fungsi dengan menjalankan perintah berikut di direktori yang berisi kode contoh:
Node.js
gcloud run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs24 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1.Python
gcloud run deploy python-http-function \ --source . \ --function hello_get \ --base-image python313 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1.Go
gcloud run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go125 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1.Java
Jalankan perintah berikut di direktori yang berisi file
pom.xml:gcloud run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java21 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1.Ruby
gcloud run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby34 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1.PHP
gcloud run deploy php-http-function \ --source . \ --function helloGet \ --base-image php84 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1..NET
gcloud run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet8 \ --region REGION \ --allow-unauthenticatedGanti REGION dengan Google Cloud region layanan tempat Anda ingin men-deploy fungsi. Contoh,
europe-west1.Setelah deployment selesai, Google Cloud CLI akan menampilkan URL tempat layanan berjalan. Buka URL di browser untuk melihat output fungsi Anda.
Di konsol Google Cloud , buka halaman Services Cloud Run:
Temukan layanan yang ingin Anda hapus dalam daftar layanan, lalu klik kotak centang layanan tersebut untuk memilihnya.
Klik Hapus. Tindakan ini akan menghapus semua revisi layanan.
- SERVICE: nama layanan Anda.
- REGION: Google Cloud region layanan.
Untuk men-deploy fungsi contoh ke Cloud Run menggunakan Google Cloud konsol, lihat Panduan memulai: Men-deploy fungsi ke Cloud Run menggunakan Google Cloud konsol.
Untuk men-deploy fungsi dan membuat pemicu menggunakan Google Cloud konsol dan Google Cloud CLI, lihat Men-deploy fungsi.
Untuk melihat dan menghapus fungsi yang ada, lihat Mengelola revisi layanan.
Untuk membangun container fungsi di toolchain Anda sendiri dan men-deploy-nya ke Cloud Run, lihat Membangun fungsi.
Untuk membuat pemicu dengan Eventarc, lihat Membuat pemicu dengan Eventarc.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna menyelesaikan panduan memulai cepat ini, minta administrator Anda untuk memberi Anda peran IAM berikut:
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Memberi akun layanan Cloud Build akses ke project Anda
Cloud Build otomatis menggunakan akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk membangun kode sumber dan resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini.
Agar Cloud Build dapat membangun sumber Anda, berikan peran Cloud Run
Builder
(roles/run.builder) ke akun layanan Cloud Build di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Ganti PROJECT_ID dengan project ID Google Cloud
Anda dan SERVICE_ACCOUNT_EMAIL_ADDRESS dengan alamat email akun layanan Cloud Build. Jika Anda menggunakan akun layanan default Compute Engine sebagai akun layanan Cloud Build, gunakan format berikut untuk alamat email akun layanan:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ganti PROJECT_NUMBER dengan nomor project Google Cloud
Anda.
Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project Anda, lihat Membuat dan mengelola project.
Pemberian peran builder Cloud Run memerlukan waktu beberapa menit untuk diterapkan.
Menulis fungsi contoh
Untuk menulis surat permohonan, ikuti langkah-langkah berikut:
Node.js
Python
Go
Java
Ruby
PHP
.NET
Men-deploy fungsi
Untuk men-deploy fungsi Cloud Run, ikuti langkah-langkah berikut:
Pembersihan
Untuk menghindari biaya tambahan pada akun Google Cloud Anda, hapus semua resource yang Anda deploy dengan panduan memulai ini.
Menghapus repositori Anda
Cloud Run tidak mengenakan biaya saat layanan yang di-deploy tidak digunakan. Namun, Anda mungkin tetap dikenai biaya atas penyimpanan image container di Artifact Registry. Untuk menghapus repositori Artifact Registry, ikuti langkah-langkah di Menghapus repositori dalam dokumentasi Artifact Registry.
Menghapus layanan Anda
Layanan Cloud Run tidak menimbulkan biaya hingga menerima permintaan. Untuk menghapus layanan Cloud Run, ikuti salah satu langkah berikut:
Konsol
Untuk menghapus layanan:
gcloud
Untuk menghapus layanan, jalankan perintah berikut:
gcloud run services delete SERVICE --region REGION
Ganti kode berikut:
Menghapus project pengujian Anda
Menghapus project Google Cloud akan menghentikan penagihan untuk semua resource dalam project tersebut. Untuk melepaskan semua Google Cloud resource di project Anda, ikuti langkah-langkah berikut:
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID