Memulai Cloud Functions

1. Ringkasan

Cloud-Functions.png

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.

907ffb96feada611.pngS

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

  1. 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.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

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.

  1. 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).

  1. Untuk mengaktifkan Cloud Shell dari Cloud Console, cukup klik Aktifkan Cloud ShellfEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q (hanya perlu beberapa saat untuk melakukan penyediaan dan terhubung ke lingkungan).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

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:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

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>
  1. 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.

fe64222954f5f372.png

  • Klik "BUAT FUNGSI" :

7adca9640ca2e5a6.pngS

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

795f1fedc0f039bb.pngS

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

b68c3647b771e6f9.png

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).

3ec684b1b4906657.pngS

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 :

74e310ee6663bb3c.png

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.

a876def9cbf24a45.png

5. Melihat log fungsi

Klik panah biru untuk kembali ke halaman Cloud Functions Overview :

8917a2bfa4fb9502.png

Tampilkan menu untuk fungsi Anda, lalu klik View logs :

e97e6ec1fc17dfd7.png

Berikut adalah contoh histori log :

d91a00cf4457fa84.png

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 :

4fe11e1b41b32ba2.pngS

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 :