Checkpoint
Build with Cloud Build
/ 25
REST API Deployed
/ 25
Firestore database created
/ 25
Build image revision 0.2
/ 25
Mengembangkan REST API dengan Go dan Cloud Run
GSP761
Ringkasan
Untuk lab dalam kursus Serverless Cloud Run Development, Anda akan membaca skenario bisnis fiktif dan membantu para karakter menerapkan rencana migrasi serverless mereka.
Dua belas tahun lalu, Lily memulai jaringan klinik hewan Pet Theory. Seiring pertumbuhan jaringan klinik tersebut, Lily lebih banyak menghabiskan waktunya untuk berbincang di telepon dengan perusahaan asuransi daripada merawat hewan peliharaan. Ia berharap perusahaan asuransi bisa melihat total biaya perawatan secara online.
Dalam lab sebelumnya pada seri ini, Ruby, konsultan komputer, dan Patrick, DevOps Engineer, memindahkan database pelanggan Pet Theory ke database Firestore serverless di cloud, lalu membuka akses bagi pelanggan sehingga mereka dapat membuat janji temu secara online. Karena Pet Theory hanya memiliki satu staf operasional yang menangani bermacam tugas, mereka membutuhkan solusi serverless yang tidak perlu banyak pemeliharaan berkelanjutan.
Dalam lab ini, Anda akan membantu Ruby dan Patrick memberi perusahaan asuransi akses ke data pelanggan tanpa mengekspos Informasi Identitas Pribadi (PII). Anda akan membangun gateway Representational State Transfer (REST) API yang aman menggunakan Cloud Run, yang bersifat serverless. Dengan begitu, perusahaan asuransi akan dapat melihat total biaya perawatan tanpa melihat PII pelanggan.
Tujuan
Dalam lab ini, Anda akan:
- Mengembangkan REST API dengan Go
- Mengimpor data uji coba pelanggan ke Firestore
- Menghubungkan REST API ke database Firestore
- Men-deploy REST API ke Cloud Run
Prasyarat
Ini adalah lab tingkat menengah. Anda dianggap sudah familier dengan Konsol Cloud dan lingkungan Cloud Shell. Lab ini adalah bagian dari sebuah seri. Pengalaman dari lab sebelumnya seperti yang berikut akan bermanfaat, tetapi tidak wajib:
- Mengimpor Data ke Database Serverless
- Membangun Aplikasi Web Serverless dengan Firebase dan Firestore
- Membangun Aplikasi Serverless yang Membuat File PDF
Penyiapan dan persyaratan
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.
Lily, Pendiri Pet Theory |
Halo Ruby, Ingat percakapan kita minggu lalu saat saya mengeluh kewalahan menangani dokumen dan panggilan telepon dari perusahaan asuransi? Andai saja ada cara yang memungkinkan perwakilan mereka mengakses data pelanggan dengan aman dan efisien. Beban kerja semacam ini tidak bagus untuk ke depannya. Bisakah Anda membantu? Lily |
Ruby, Konsultan Software |
Halo Lily, Kemarin, saya makan siang bersama Patrick dan kami membuat rencana untuk mempermudah pihak ke-3 yang berwenang mengakses data digital Pet Theory secara aman. Kami akan membuat solusi tersebut dengan empat langkah:
Saya dan Patrick punya skill untuk langkah 1 + 2, jadi kami bisa langsung memulai. Kami berharap prototipe yang berfungsi sudah siap akhir pekan ini. Ruby |
Bantu Ruby mengelola aktivitas yang diperlukan guna membangun REST API untuk Pet Theory.
Tugas 1. Mengaktifkan Google API
Untuk lab ini, 2 API sudah diaktifkan untuk Anda:
Nama | API |
---|---|
Cloud Build | cloudbuild.googleapis.com |
Cloud Run | run.googleapis.com |
Tugas 2. Mengembangkan REST API
- Aktifkan project Anda:
- Clone repositori pet-theory dan akses kode sumbernya:
-
Gunakan editor teks favorit Anda, atau gunakan tombol Code Editor di panel Cloud Shell, untuk melihat file
go.mod
dango.sum
. -
Buat file
main.go
dan tambahkan konten berikut ke file tersebut:
- Sekarang, buat file dengan nama
Dockerfile
dan tambahkan kode berikut ke file tersebut:
File server
adalah program biner eksekusi yang dibuat dari main.go
.
- Jalankan perintah berikut untuk membangun program biner:
- Setelah menjalankan perintah build, pastikan Anda memiliki Dockerfile dan server yang diperlukan di direktori yang sama:
Untuk sebagian besar aplikasi berbasis Go Cloud Run, Dockerfile template seperti di atas biasanya dapat digunakan tanpa perlu memodifikasinya.
- Deploy REST API sederhana Anda dengan menjalankan:
Perintah ini akan membangun container dengan kode Anda dan menempatkannya di Container Registry project Anda. Anda dapat melihat container ini dengan mengklik Navigation menu > Container Registry. Jika rest-api
tidak terlihat, klik Refresh.
Klik Check my progress untuk memastikan Anda telah menjalankan tugas di atas.
- Setelah dibangun, deploy container tersebut:
- Setelah deployment selesai, Anda akan melihat pesan seperti ini:
Klik Check my progress untuk memastikan Anda telah menjalankan tugas di atas.
- Klik URL Layanan di akhir pesan untuk membukanya di tab browser baru. Tambahkan
/v1/
ke akhir URL, lalu tekan Enter.
Anda akan melihat pesan ini:
Sekarang, REST API sudah aktif dan berjalan. Setelah layanan prototipe ini tersedia, API tersebut akan digunakan di bagian berikutnya untuk mengambil informasi "customer" dari database Firestore.
Tugas 3. Mengimpor data uji coba pelanggan
Ruby, Konsultan Software |
Halo Patrick, Masih menyimpan data pelanggan fiktif yang kita buat beberapa waktu lalu? Kita akan memerlukannya untuk pengujian. Anda ingat cara menyiapkan database Firestore dan mengimpor data? Ruby |
Patrick, Admin IT |
Halo Ruby, Ya, saya masih menyimpan data itu. Saya akan memigrasikannya ke Firestore hari ini supaya Anda bisa menggunakannya untuk pengujian. Patrick |
Ruby dan Patrick sebelumnya sudah membuat database uji coba yang berisi 10 pelanggan, dengan beberapa usulan perawatan untuk kucing salah satu pelanggan.
Bantu Patrick mengonfigurasi database Firestore dan mengimpor data uji coba pelanggan. Pertama-tama, aktifkan Firestore di project Anda.
-
Kembali ke Konsol Cloud dan klik Navigation Menu > Firestore.
-
Klik tombol Create Database.
-
Klik tombol Native Mode, lalu klik Continue.
-
Untuk Location type, pilih Region.
-
Pilih region
dari daftar yang tersedia, lalu klik Create Database.
Tunggu hingga database selesai dibuat sebelum melanjutkan.
Klik Check my progress untuk memastikan Anda telah menjalankan tugas di atas.
- Migrasikan file impor ke bucket Cloud Storage yang telah dibuat untuk Anda:
- Sekarang, impor data ini ke Firebase:
Muat ulang browser Konsol Cloud untuk melihat hasil Firestore.
- Di Firestore, klik customers di bagian "Default". Anda akan melihat data hewan peliharaan yang telah diimpor. Silakan buka. Jika Anda tidak melihat data apa pun, coba refresh halaman.
Bagus, database Firestore sudah berhasil dibuat dan diisi dengan data uji coba.
Tugas 4. Menghubungkan REST API ke database Firestore
Ruby, Konsultan Software |
Halo Lily, Hanya ingin mengabari: saya dan Patrick sudah menyelesaikan dua tugas pertama dalam daftar. Sekarang, saya akan melanjutkan ke tahap menyusun REST API agar bisa mengakses data pelanggan di Firestore. Ruby |
Lily, Pendiri Pet Theory |
Halo Ruby, Bagus! Saya tunggu hasil tahap berikutnya. Lily |
Di bagian ini, Anda akan membantu Ruby membuat end-point lain di REST API yang akan terlihat seperti ini:
Misalnya, URL tersebut akan menampilkan total biaya untuk semua perawatan yang diusulkan, disetujui, dan ditolak untuk pelanggan dengan ID 22530, jika pelanggan tersebut tercantum di database Firestore:
Fungsionalitas baru ini memerlukan sebuah paket untuk mengakses database Firestore dan satu paket lainnya untuk menangani Cross-Origin Resource Sharing (CORS).
- Dapatkan nilai untuk variabel lingkungan $GOOGLE_CLOUD_PROJECT.
- Buka file
main.go
yang sudah ada di direktori pet-theory/lab08.
- Ganti isi file ini dengan kode di bawah. Pastikan
PROJECT_ID
ditetapkan ke:
- Tambahkan dukungan handler di bagian bawah file:
- Tambahkan dukungan Customer ke bagian bawah file:
- Simpan file.
Tugas 6. Kuis hiburan
Tugas 7. Men-deploy revisi baru
- Bangun ulang kode sumber:
- Bangun image baru untuk REST API:
Klik Check my progress untuk memverifikasi tujuan.
- Deploy image yang telah diupdate:
- Kembalilah ke tab browser yang sudah mengarah ke URL tersebut (dengan
/v1/
di bagian akhirnya). Refresh tab ini dan pastikan Anda menerima pesan yang sama seperti sebelumnya, yang menunjukkan bahwa status API masih berjalan.
- Di kolom URL browser, tambahkan
/customer/22530
ke URL aplikasi. Anda akan menerima respons JSON ini, yang mencantumkan jumlah total biaya perawatan yang diusulkan, disetujui, dan ditolak untuk pelanggan ini:
- Berikut ini beberapa client ID lain yang dapat Anda masukkan di URL sebagai pengganti 22530:
- 34216
- 70156 (semua jumlah harus nol)
- 12345 (klien/hewan peliharaan tidak ada, error akan ditampilkan, misalnya Query is nil)
Anda telah membangun REST API yang skalabel, minim perawatan, dan serverless yang dapat membaca dari database.
Selamat!
Selamat! Dalam lab ini, Anda telah membantu Ruby dan Patrick berhasil membangun REST API prototipe untuk Pet Theory. Anda membuat REST API yang terhubung ke database Firestore dan men-deploy-nya ke Cloud Run. Anda juga telah menguji API tersebut untuk memastikannya berfungsi sesuai harapan.
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 06 Mei 2024
Lab Terakhir Diuji 06 Mei 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.