Checkpoint
Deploy the function
/ 100
Cloud Functions: Qwik Start - Command Line
GSP080
Ringkasan
Cloud function merupakan sebuah kode pendek yang dijalankan untuk merespons sebuah peristiwa, misalnya permintaan HTTP, pesan dari layanan pesan, atau upload file. Peristiwa cloud adalah hal-hal yang terjadi di lingkungan cloud Anda. Hal-hal tersebut dapat berupa perubahan data dalam database, file yang ditambahkan ke sistem penyimpanan, atau instance virtual machine baru yang dibuat.
Karena dijalankan berdasarkan peristiwa, cloud function hanya dijalankan saat sesuatu terjadi. Hal ini menjadikan cloud function sebagai pilihan bagus untuk tugas-tugas yang harus dikerjakan dengan cepat atau yang tidak perlu dijalankan sepanjang waktu.
Sebagai contoh, Anda dapat menggunakan cloud function untuk:
- membuat thumbnail secara otomatis untuk gambar yang diupload ke Cloud Storage.
- mengirimkan notifikasi ke telepon pengguna ketika ada pesan baru diterima di Cloud Pub/Sub.
- memproses data dari database Cloud Firestore dan membuat laporan.
Anda dapat menulis kode dalam bahasa apa pun yang mendukung Node.js, dan Anda dapat men-deploy kode ke cloud hanya dengan beberapa klik. Setelah di-deploy, cloud function Anda secara otomatis akan mulai dijalankan saat merespons peristiwa.
Lab praktik ini menunjukkan kepada Anda cara membuat, men-deploy, dan menguji cloud function menggunakan Konsol Google Cloud.
Lab praktik ini menunjukkan kepada Anda cara membuat, men-deploy, dan menguji cloud function menggunakan command line Google Cloud Shell.
Yang akan Anda lakukan
- Membuat cloud function
- Men-deploy dan menguji cloud function
- Melihat log
Penyiapan
Sebelum mengklik tombol Mulai Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account. -
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}} Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}} Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan. -
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
- Klik Activate Cloud Shell di bagian atas konsol Google Cloud.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
-
Klik Authorize.
-
Output Anda sekarang akan terlihat seperti ini:
Output:
- (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Membuat cloud function
Pertama, Anda akan membuat function sederhana bernama helloWorld
. Function ini menulis pesan ke log Cloud Functions. Function ini dipicu oleh peristiwa cloud function dan menerima fungsi callback yang digunakan untuk menandakan penyelesaian function tersebut.
Untuk lab ini, peristiwa cloud function-nya adalah peristiwa topik cloud pub/sub. Pub/sub adalah layanan pesan yang memisahkan pengirim pesan dari penerima pesan. Saat pesan dikirim atau diposting, langganan diperlukan agar penerima pesan dapat memperoleh pemberitahuan dan menerima pesan tersebut. Untuk mempelajari pub/sub lebih lanjut, di dalam Panduan Cloud Pub/Sub, lihat Google Cloud Pub/Sub: Layanan Pesan dengan Skala Google.
Untuk mempelajari parameter peristiwa dan parameter callback lebih lanjut, di dalam Dokumentasi Cloud Functions, lihat Fungsi Latar Belakang.
Untuk membuat cloud function:
-
Di Cloud Shell, jalankan perintah berikut untuk menetapkan region default:
gcloud config set run/region {{{project_0.default_region |REGION}}} -
Buat direktori untuk kode function:
mkdir gcf_hello_world && cd $_ -
Buat dan buka
index.js
untuk mengedit:nano index.js -
Salin kode berikut ke file
index.js
:const functions = require('@google-cloud/functions-framework'); // Register a CloudEvent callback with the Functions Framework that will // be executed when the Pub/Sub trigger topic receives a message. functions.cloudEvent('helloPubSub', cloudEvent => { // The Pub/Sub message is passed as the CloudEvent's data payload. const base64name = cloudEvent.data.message.data; const name = base64name ? Buffer.from(base64name, 'base64').toString() : 'World'; console.log(`Hello, ${name}!`); }); -
Keluar dari nano (Ctrl+x) dan simpan (Y) file tersebut.
-
Buat dan buka
package.json
untuk mengedit: -
Salin kode berikut ke file
package.json
:{ "name": "gcf_hello_world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } } -
Keluar dari nano (Ctrl+x) dan simpan (Y) file tersebut.
-
Instal dependensi paket
npm install Output yang Diharapkan:
added 140 packages, and audited 141 packages in 9s 27 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
Tugas 2. Men-deploy function
Untuk lab ini, Anda akan menetapkan --trigger-topic
sebagai cf_demo
.
Cloud Functions didasarkan pada peristiwa, yang berarti jenis pemicu harus ditentukan. Saat men-deploy function baru, `--trigger-topic`, `--trigger-bucket`, atau `--trigger-http` adalah peristiwa pemicu yang umum. Saat men-deploy perubahan ke function yang ada, function tersebut akan mempertahankan pemicu yang ada kecuali jika ditentukan lain.
-
Deploy function helloPubSub ke topik pub/sub yang bernama cf-demo
gcloud functions deploy nodejs-pubsub-function \ --gen2 \ --runtime=nodejs20 \ --region={{{ project_0.default_region | WILAYAH }}} \ --source=. --entry-point=helloPubSub \ --trigger-topic cf-demo \ --stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \ --service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \ --allow-unauthenticated Catatan:
Jika Anda mendapatkan notifikasi serviceAccountTokenCreator akun layanan, pilih "n". -
Verifikasi status function tersebut:
gcloud functions describe nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} Status ACTIVE menunjukkan bahwa function telah di-deploy.
Output yang Diharapkan:
BuildConfig: automaticUpdatePolicy: {} build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390 dockerRegistry: ARTIFACT_REGISTRY dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts entryPoint: helloPubSub ... State: ACTIVE ... UpdateTime: '2024-08-05T13:51:05.317298824Z' Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function
Tiap pesan yang dipublikasikan dalam topik akan memicu eksekusi function. Isi pesan tersebut kemudian diteruskan sebagai data input.
Menguji Tugas yang Telah Diselesaikan
Klik Check my progress untuk memverifikasi tugas yang telah dijalankan. Jika berhasil menyelesaikan tugas, Anda akan menerima skor penilaian.
Tugas 3. Menguji function
Setelah Anda men-deploy function dan sudah aktif, uji apakah function tersebut menulis pesan ke log cloud atau tidak setelah mendeteksi suatu peristiwa.
-
Memanggil PubSub dengan beberapa data.
gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2" Contoh output:
messageIds: - '11927162971409664'
Lihat log untuk mengonfirmasi bahwa ada pesan log dengan ID eksekusi tersebut.
Tugas 4. Melihat log
-
Periksa log untuk melihat pesan Anda dalam histori log:
gcloud functions logs read nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} Catatan:
Perlu waktu sekitar 10 menit hingga log muncul. Cara alternatif untuk melihat log adalah dengan membuka Logging > Logs Explorer.Cloud function akan menampilkan informasi yang mirip seperti di bawah ini:
LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4v6akxf4sxt TIME_UTC: 2024-08-05 15:15:25.723 LOG: Hello, Cloud Function Gen2! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:15:25.711 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4oxfjn7zlyu TIME_UTC: 2024-08-05 15:10:34.303 LOG: Hello, Friend! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:10:34.291 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4fjhyfxua3k TIME_UTC: 2024-08-05 15:03:16.342 LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!
Aplikasi Anda telah di-deploy, diuji, dan Anda dapat melihat log-nya.
Tugas 5. Menguji pemahaman Anda
-
Di bawah ini terdapat beberapa pertanyaan pilihan ganda untuk memperkuat pemahaman Anda tentang konsep-konsep dalam lab ini. Jawab pertanyaan tersebut sebaik mungkin.
Selamat!
Anda menggunakan konsol Google Cloud untuk membuat, men-deploy, dan menguji cloud function menggunakan command line.
Ikuti lab berikutnya
Lab ini merupakan bagian dari rangkaian lab yang disebut Qwik Start. Lab ini dirancang agar Anda dapat mencoba berbagai fitur yang tersedia dengan Google Cloud. Telusuri "Qwik Start" di katalog lab untuk menemukan lab berikutnya yang ingin Anda ikuti.
Langkah berikutnya/Pelajari lebih lanjut
- Anda telah menggunakan command line untuk memulai Cloud Function. Sekarang, coba lab Cloud Functions: Qwik Start - Konsol untuk memulai Cloud Function menggunakan Konsol Cloud.
- Untuk mengetahui informasi selengkapnya tentang cara membuat pemicu dan mengaitkannya dengan function Anda, baca bagian Peristiwa dan Pemicu di Panduan Cloud Functions.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 05 Agustus 2024
Lab Terakhir Diuji pada 05 Agustus 2024
Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.