Tutorial ini menunjukkan cara menulis fungsi HTTP Cloud Run yang mengirimkan kueri ke BigQuery.
Tujuan
Dalam tutorial ini, Anda akan:
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen yang dapat ditagih berikut Google Cloud:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create 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.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create 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.
-
Verify that billing is enabled for your Google Cloud project.
Aktifkan Artifact Registry, Cloud Run Admin API, dan Cloud Build API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.- Siapkan lingkungan pengembangan Cloud Run di Google Cloud project Anda.
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.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk men-deploy layanan Cloud Run dari sumber, minta administrator untuk memberi Anda peran IAM berikut:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) di project Anda - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) di layanan Cloud Run - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di identitas layanan - BigQuery Job User (
roles/bigquery.jobUser) di identitas layanan
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Peran untuk akun layanan Cloud Build
Anda atau administrator harus memberikan peran IAM berikut ke akun layanan Cloud Build.
Klik untuk melihat peran yang diperlukan untuk akun layanan Cloud Build
Cloud Build secara otomatis menggunakan akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk mem-build kode sumber dan resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini. Agar
Cloud Build dapat mem-build sumber Anda, minta administrator untuk memberikan
Cloud Run Builder
(roles/run.builder) ke akun layanan default Compute Engine
di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Ganti PROJECT_NUMBER dengan nomor project Anda Google Cloud, dan PROJECT_ID dengan project ID Anda Google Cloud. Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project Anda,
lihat Membuat
dan mengelola project.
Pemberian peran Cloud Run builder ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk diterapkan.
Menyiapkan aplikasi
Buat clone repositori aplikasi contoh ke komputer lokal Anda:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitAtau, download contoh sebagai file ZIP lalu ekstrak.
Ubah ke direktori yang berisi kode contoh:
cd nodejs-docs-samples/functions/v2/helloBigQueryLihat kode contoh: Sampel mengirimkan kueri untuk kata yang terjadi setidaknya 400 kali dalam set data yang ditentukan, dan menampilkan hasilnya.
Men-deploy fungsi
Untuk men-deploy fungsi dengan pemicu HTTP:
Jalankan perintah berikut di direktori yang berisi kode contoh:
gcloud run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGION \ --allow-unauthenticated
Ganti:
FUNCTION dengan nama fungsi yang Anda deploy, misalnya
my-bigquery-function. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama jika menghilangkannya.FUNCTION_ENTRYPOINT dengan titik entri ke fungsi Anda dalam kode sumber. Ini adalah kode yang dijalankan Cloud Run saat fungsi Anda berjalan. Nilai flag ini harus berupa nama fungsi atau nama class yang sepenuhnya memenuhi syarat yang ada dalam kode sumber Anda. Titik entri yang harus Anda tentukan untuk fungsi contoh adalah
helloBigQuery.BASE_IMAGE dengan lingkungan image dasar untuk fungsi Anda, misalnya,
nodejs24. Untuk mengetahui detail tentang image dasar dan paket yang disertakan dalam setiap image, lihat Image dasar runtime.REGION dengan Google Cloud region tempat Anda ingin men-deploy fungsi. Misalnya,
europe-west1.
Opsional:
- Jika Anda membuat fungsi HTTP publik, misalnya webhook, tentukan flag
--allow-unauthenticated. Flag ini menetapkan peran IAM Invoker Cloud Run ke ID khususallUser. Anda dapat menggunakan IAM untuk mengedit setelan ini nanti setelah membuat layanan.
Menguji fungsi
Setelah fungsi selesai di-deploy, salin properti
uri.Kunjungi URI ini di browser Anda.
Anda akan melihat daftar kata yang cocok dengan kriteria kueri, dan berapa kali setiap kata muncul di set data target.
Pembersihan
Untuk menghindari biaya tambahan ke Google Cloud akun Anda, hapus semua resource yang Anda deploy dengan tutorial ini.
Menghapus project
Jika Anda membuat project baru untuk tutorial ini, hapus project tersebut. Jika Anda menggunakan project yang sudah ada dan perlu mempertahankannya tanpa perubahan yang Anda tambahkan dalam tutorial ini, hapus resource yang Anda buat untuk tutorial.
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di Google Cloud konsol, buka halaman Manage resources.
- Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource tutorial
Hapus layanan Cloud Run yang Anda deploy dalam tutorial ini. Layanan Cloud Run tidak dikenai biaya hingga menerima permintaan.
Untuk menghapus layanan Cloud Run, jalankan perintah berikut:
gcloud run services delete SERVICE-NAME
Ganti SERVICE-NAME dengan nama layanan Anda.
Anda juga dapat menghapus layanan Cloud Run dari Google Cloud konsol.
Hapus konfigurasi region default
gcloudyang Anda tambahkan selama penyiapan tutorial:gcloud config unset run/regionHapus konfigurasi project:
gcloud config unset project