1. Ringkasan

Dengan Cloud Functions, Anda dapat menulis fungsi-fungsi sederhana dan bertujuan tunggal yang dilampirkan ke peristiwa yang muncul dari infrastruktur serta layanan cloud Anda. Cloud Function Anda terpicu ketika suatu peristiwa yang sedang dipantau diaktifkan. Kode Anda dijalankan dalam lingkungan yang terkelola sepenuhnya. Anda tidak perlu menyediakan infrastruktur atau pun memikirkan pengelolaan server.
Cloud Functions saat ini dapat ditulis dalam JavaScript, Python, atau Go. Untuk JavaScript, fungsi ini dieksekusi di lingkungan Node.js di Google Cloud Platform. Anda dapat menggunakan Cloud Function dan menjalankannya dalam runtime Node.js standar yang membuat portabilitas serta pengujian lokal menjadi mudah.
Menghubungkan dan Memperluas Layanan Cloud
Cloud Functions menyediakan lapisan penghubung logika agar Anda dapat menulis kode untuk menghubungkan dan memperpanjang layanan cloud. Mendeteksi dan merespons upload file ke Cloud Storage, perubahan log, atau pesan masuk pada topik Cloud Pub/Sub. Cloud Functions menambah layanan cloud yang ada dan memungkinkan Anda untuk mengatasi peningkatan jumlah kasus penggunaan dengan logika pemrograman arbitrer. Cloud Functions memiliki akses ke kredensial Akun Layanan Google sehingga diautentikasi tanpa hambatan dengan sebagian besar layanan Google Cloud Platform seperti Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API, dan banyak lainnya.

Peristiwa dan Pemicu
Peristiwa cloud adalah hal-hal yang terjadi di lingkungan cloud Anda.Hal-hal tersebut dapat berupa perubahan data di database, penambahan file ke sistem penyimpanan, atau pembuatan instance mesin virtual baru.
Peristiwa terjadi terlepas dari apakah Anda memilih untuk meresponsnya atau tidak. Anda membuat respons terhadap peristiwa dengan pemicu. Pemicu adalah pernyataan bahwa Anda tertarik pada suatu peristiwa atau rangkaian peristiwa tertentu. Dengan mengaitkan suatu fungsi ke sebuah pemicu, Anda dapat merekam dan menindaklanjuti peristiwa. Untuk mengetahui informasi selengkapnya tentang cara membuat pemicu dan mengaitkannya dengan fungsi Anda, lihat Peristiwa dan Pemicu.
Serverless
Cloud Functions menghapus tugas mengelola server, mengonfigurasi software, mengupdate framework, dan melakukan patch pada sistem operasi. Software dan infrastruktur telah terkelola sepenuhnya oleh Google sehingga Anda cukup menambahkan kode saja. Selanjutnya, penyediaan resource terjadi secara otomatis sebagai respons terhadap peristiwa. Ini berarti bahwa suatu fungsi dapat menskalakan dari beberapa pemanggilan sehari hingga jutaan pemanggilan tanpa ada campur tangan dari Anda.
Kasus Penggunaan
Beban kerja asinkron seperti ETL ringan, atau otomatisasi cloud seperti memicu pembuatan aplikasi sekarang tidak lagi memerlukan servernya sendiri dan developer untuk menghubungkannya. Anda cukup men-deploy Cloud Function yang terkait dengan peristiwa yang diinginkan.
Sifat Cloud Functions yang mendetail dan sesuai permintaan juga menjadikannya kandidat tepat untuk API serta webhook ringan. Selain itu, penyediaan otomatis endpoint HTTP saat Anda menerapkan Fungsi HTTP berarti tidak ada konfigurasi rumit yang diperlukan seperti ketika ada beberapa layanan lain.
Lab praktik ini menunjukkan kepada Anda cara membuat, men-deploy, dan menguji cloud function menggunakan Konsol Google Cloud. Anda akan :
- Membuat cloud function
- Menerapkan dan menguji cloud function tersebut
- Melihat log
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. (Jika belum memiliki akun Gmail atau G Suite, Anda harus membuatnya.)
Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.
Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Google Cloud Shell
Meskipun Google Cloud dan Cloud Functions dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, kita akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Mesin virtual berbasis Debian ini memuat semua alat pengembangan yang akan Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Ini berarti bahwa semua yang Anda perlukan untuk codelab ini adalah browser (ya, ini berfungsi di Chromebook).
- Untuk mengaktifkan Cloud Shell dari Cloud Console, cukup klik Aktifkan Cloud Shell
(hanya perlu beberapa saat untuk melakukan penyediaan dan terhubung ke lingkungan).
Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke PROJECT_ID.
gcloud auth list
Output perintah
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika, untuk beberapa alasan, project belum disetel, cukup jalankan perintah berikut:
gcloud config set project <PROJECT_ID>
Mencari PROJECT_ID Anda? Periksa ID yang Anda gunakan di langkah-langkah penyiapan atau cari di dasbor Cloud Console:
Cloud Shell juga menetapkan beberapa variabel lingkungan secara default, yang mungkin berguna saat Anda menjalankan perintah di masa mendatang.
echo $GOOGLE_CLOUD_PROJECT
Output perintah
<PROJECT_ID>
- Terakhir, tetapkan zona dan konfigurasi project default.
gcloud config set compute/zone us-central1-f
Anda dapat memilih berbagai zona yang berbeda. Untuk informasi selengkapnya, lihat Region & Zona.
3. Membuat fungsi
Pada langkah ini, Anda akan membuat cloud function menggunakan konsol.
- Di konsol, klik Navigation menu > Cloud Functions.

- Klik "CREATE FUNCTION" :

- Beri nama fungsi Anda
GCFunctiondan pertahankan default lainnya : alokasi memori, HTTP sebagai pemicu, editor inline, runtime default, dan kode contoh default.

- Saat masih berada dalam dialog "create function", di bagian bawah, klik "Create" untuk men-deploy fungsi:

Setelah Anda mengklik Buat, konsol akan mengalihkan ke halaman Ringkasan Cloud Functions.
Ketika fungsi sedang di-deploy, ikon di sebelahnya akan terlihat seperti indikator lingkaran berputar yang kecil. Saat sudah di-deploy, indikator lingkaran berputar tersebut akan berubah menjadi tanda centang hijau. Jika ada masalah, Anda akan diberi tahu dengan ikon merah dan link ke log untuk memahami apa yang salah (kemungkinan masalah pada kode Anda).

Selesai! Fungsi Anda kini sudah aktif dan siap dipicu melalui HTTP.
4. Menguji fungsi
Di halaman Cloud Functions Overview, tampilkan menu untuk fungsi Anda, lalu klik Test function :

Di kolom Peristiwa pemicu, masukkan teks berikut di antara tanda kurung {} dan klik Uji fungsi.
Di kolom Output, Anda akan melihat pesan Success: Hello World!
Di kolom Logs, kode status 200 menunjukkan keberhasilan. Perhatikan bahwa mungkin diperlukan waktu satu menit agar log muncul.

5. Melihat log fungsi
Klik panah biru untuk kembali ke halaman Ringkasan Cloud Functions :

Tampilkan menu untuk fungsi Anda, lalu klik View logs :

Berikut adalah contoh histori log :

Perhatikan bahwa Anda dapat memfilter log per fungsi, per tingkat keparahan, dan menelusuri melalui label atau beberapa teks bentuk bebas.
Aplikasi Anda telah di-deploy, diuji, dan Anda dapat melihat log-nya.
6. Membersihkan resource
Anda tidak perlu membersihkan resource karena ini adalah komputasi serverless : penskalaan ke nol juga berarti penskalaan biaya ke nol. Jadi, jika fungsi Anda tidak mendapatkan traffic, tidak akan ada biaya yang dikenakan. Selain itu, 2 juta pemanggilan Cloud Function pertama setiap bulan gratis. Lihat halaman harga untuk mengetahui detail selengkapnya.
Jika Anda ingin menghapus fungsi, cukup buka halaman ringkasan, pilih fungsi, lalu klik HAPUS :

7. Langkah berikutnya
Cloud Functions memiliki banyak hal menarik untuk Anda! Lihat codelab lain dan halaman produk, serta dokumentasinya.
Anda juga harus melihat hal berikut :
- Memanggil Cloud Functions (pemicu tersedia untuk pemanggilan fungsi)
- Memantau Cloud Functions (log, pelaporan error, dan lainnya)
- ... atau codelab lainnya dari kategori Serverless