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. Dalam kasus JavaScript, skrip tersebut 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 dalam database, file yang ditambahkan ke sistem penyimpanan, atau instance virtual machine baru yang sedang dibuat.
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 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
- Lihat 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 secara jarak jauh dari laptop Anda, dalam codelab ini kita akan menggunakan Google Cloud Shell, yakni 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 "BUAT FUNGSI" :
- Beri nama fungsi Anda
GCFunction
dan pertahankan nilai default lainnya : alokasi memori, HTTP sebagai pemicu, editor inline, runtime default, dan kode contoh default.
- Saat masih dalam "create function" dialog, di bagian bawah, klik "Buat" untuk men-deploy fungsi:
Setelah Anda mengklik Create, konsol akan mengalihkan ke halaman Cloud Functions Overview.
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 ada 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 Triggering event, masukkan teks berikut di antara tanda kurung {} dan klik Test the function.
Di kolom Output, Anda akan melihat pesan Success: Hello World!
Di kolom Log, kode status 200 menunjukkan keberhasilan. Perlu diperhatikan bahwa mungkin perlu waktu satu menit hingga log muncul.
5. Melihat log fungsi
Klik panah biru untuk kembali ke halaman Cloud Functions Overview :
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 penelusuran 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 : melakukan penskalaan ke nol yang berarti menskalakan biaya ke nol. Jadi, jika fungsi Anda tidak mendapatkan traffic, tidak akan ada biaya yang timbul. Selain itu, 2 juta pemanggilan Cloud Function pertama setiap bulan tidak dikenakan biaya. Lihat halaman harga untuk mengetahui detail selengkapnya.
Jika Anda ingin menghapus fungsi, cukup buka halaman ringkasan, pilih fungsi dan klik DELETE :
7. Langkah berikutnya
Ada banyak hal lain yang tersedia di Cloud Functions untuk Anda. Lihat codelab lainnya dan halaman produk, serta dokumentasinya.
Anda juga harus memeriksa hal-hal berikut :
- Memanggil Cloud Functions (pemicu yang tersedia untuk pemanggilan fungsi)
- Memantau Cloud Functions (log, pelaporan error, dan lainnya)
- ... atau codelab lainnya dari Kategori serverless