Tutorial ini menunjukkan cara menangani sesi di App Engine.
Banyak aplikasi memerlukan penanganan sesi untuk autentikasi dan preferensi pengguna.
Paket sessions
Gorilla Web Toolkit
disertakan dengan implementasi berbasis sistem file untuk menjalankan fungsi
ini. Namun, implementasi ini tidak cocok untuk aplikasi yang dapat ditayangkan
dari beberapa instance, karena sesi yang direkam dalam satu instance
mungkin berbeda dengan instance lainnya. Paket
gorilla/sessions
juga dilengkapi dengan implementasi berbasis cookie. Namun, penerapan ini
memerlukan enkripsi cookie dan penyimpanan seluruh sesi di klien, bukan
hanya ID sesi, yang mungkin terlalu besar untuk beberapa aplikasi.
Tujuan
- Tulis aplikasi.
- Jalankan aplikasi secara lokal.
- Deploy aplikasi di App Engine.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Firestore.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Firestore.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Perbarui komponen
gcloud
:gcloud components update
- Menyiapkan lingkungan pengembangan.
Menyiapkan project
Di jendela terminal, clone repositori aplikasi contoh ke komputer lokal Anda:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Ubah ke direktori yang berisi kode contoh:
cd golang-samples/getting-started/sessions
Memahami aplikasi web
Aplikasi ini menampilkan sapaan dalam berbagai bahasa untuk setiap pengguna. Pengguna yang kembali selalu disambut dalam bahasa yang sama.
Sebelum aplikasi dapat menyimpan preferensi untuk pengguna, Anda memerlukan cara untuk menyimpan informasi tentang pengguna saat ini dalam sesi. Aplikasi contoh ini menggunakan Firestore untuk menyimpan data sesi.
Anda dapat menggunakan firestoregorilla
,
penyimpanan sesi yang kompatibel dengan
gorilla/sessions
.
Aplikasi dimulai dengan mengimpor dependensi, menentukan jenis
app
untuk menyimpansessions.Store
dan template HTML, serta menentukan daftar ucapan.Selanjutnya, aplikasi menentukan fungsi
main
, yang membuat instanceapp
baru, mendaftarkan pengendali indeks, dan memulai server HTTP. FungsinewApp
membuat instanceapp
dengan melakukan inisialisasisessions.Store
dengan fungsifirestoregorilla.New
.Pengendali indeks mendapatkan sesi pengguna, membuat sesi jika diperlukan. Sesi baru diberi bahasa acak dan jumlah penayangan 0. Kemudian, jumlah tampilan bertambah satu, sesi disimpan, dan template HTML menulis respons.
Diagram berikut menggambarkan cara Firestore menangani sesi untuk aplikasi App Engine.
Menghapus sesi
firestoregorilla
tidak menghapus sesi lama atau yang sudah tidak berlaku. Anda dapat menghapus data sesi di Konsol Google Cloud atau menerapkan strategi penghapusan otomatis. Jika Anda menggunakan solusi penyimpanan untuk sesi seperti Memcache atau Redis, sesi yang sudah tidak berlaku akan otomatis dihapus.
Berjalan secara lokal
Di jendela terminal, build biner
sessions
:go build
Mulai server HTTP:
./sessions
Lihat aplikasi di browser web Anda:
Cloud Shell
Di toolbar Cloud Shell, klik Web preview dan pilih Preview on port 8080.
Komputer lokal
Di browser, buka
http://localhost:8080
Anda akan melihat salah satu dari lima ucapan: “Hello World”, “Hallo Welt”, "Hola mundo”, “Salut le Monde”, atau “Ciao Mondo”. Bahasa akan berubah jika Anda membuka halaman di browser lain atau dalam mode Samaran. Anda dapat melihat dan mengedit data sesi di Konsol Google Cloud.
Untuk menghentikan server HTTP, tekan
Control+C
di jendela terminal Anda.
Men-deploy dan menjalankan di App Engine
Anda dapat menggunakan lingkungan standar App Engine untuk mem-build dan men-deploy aplikasi yang berjalan dengan andal dalam beban berat dan dengan jumlah data yang besar.
Tutorial ini menggunakan lingkungan standar App Engine untuk men-deploy server.
File app.yaml
berisi konfigurasi lingkungan standar App Engine:
Deploy aplikasi di App Engine:
gcloud app deploy
Di browser Anda, masukkan URL berikut:
https://PROJECT_ID.REGION_ID.r.appspot.com
Ganti kode berikut:
PROJECT_ID
: ID Project Google Cloud AndaREGION_ID
: Kode yang ditetapkan App Engine ke aplikasi Anda
Ucapan kini dikirim oleh server web yang berjalan di instance App Engine.
Men-debug aplikasi
Jika Anda tidak dapat terhubung ke aplikasi App Engine, periksa hal-hal berikut:
- Pastikan perintah deployment
gcloud
berhasil diselesaikan dan tidak menampilkan error apa pun. Jika ada error (misalnya,message=Build failed
), perbaiki, lalu coba men-deploy aplikasi App Engine lagi. Di Konsol Google Cloud, buka halaman Logs Explorer.
Di menu drop-down Recently selected resources, klik App Engine Application, lalu klik All module_id. Anda akan melihat daftar permintaan dari saat Anda mengunjungi aplikasi. Jika tidak melihat daftar permintaan, pastikan Anda memilih Semua module_id dari menu drop-down. Jika Anda melihat pesan error yang dicetak ke konsol Google Cloud, pastikan kode aplikasi Anda cocok dengan kode di bagian tentang menulis aplikasi web.
Pastikan Firestore API diaktifkan.
Pembersihan
Menghapus project
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus instance App Engine
- Di konsol Google Cloud, buka halaman Versi untuk App Engine.
- Pilih kotak centang untuk versi aplikasi non-default yang ingin Anda hapus.
- Untuk menghapus versi aplikasi, klik Hapus.
Langkah selanjutnya
- Coba tutorial fungsi Cloud Run.
- Pelajari App Engine lebih lanjut.
- Coba Cloud Run, yang memungkinkan Anda menjalankan container stateless di lingkungan yang terkelola sepenuhnya atau di cluster Google Kubernetes Engine Anda sendiri.