Banyak aplikasi memerlukan penanganan sesi untuk autentikasi dan preferensi pengguna. Framework Node.js Express dilengkapi dengan implementasi berbasis memori 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. Tutorial ini menunjukkan cara menangani sesi di App Engine.
Tujuan
- Menulis aplikasi.
- Menjalankan aplikasi secara lokal.
- Men-deploy aplikasi di App Engine.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen yang dapat ditagih sebagai berikut Cloud de Confiance by S3NS:
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.
Sebelum memulai
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Firestore API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instal Google Cloud CLI.
-
Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
Menyiapkan project
Di jendela terminal Anda, mulai di direktori pilihan Anda dan buat direktori baru bernama
sessions. Semua kode untuk tutorial ini berada di dalam direktorisessions.Ubah ke direktori
sessions:cd sessionsLakukan inisialisasi file
package.json:npm init .Instal dependensinya:
npm install \ --save @google-cloud/connect-firestore @google-cloud/firestore express express-session
Di akhir tutorial ini, struktur file akhir akan mirip dengan yang berikut:
sessions
├── app.yaml
├── index.js
└── package.json
Menulis aplikasi web
Aplikasi ini menampilkan sapaan dalam berbagai bahasa untuk setiap pengguna. Pengguna yang kembali akan 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 connect-firestore, penyimpanan sesi yang kompatibel dengan express-session.
Di jendela terminal Anda, buat file bernama
index.jsdengan konten berikut:
Diagram berikut mengilustrasikan cara Firestore menangani sesi untuk aplikasi App Engine.
Setelah Anda menetapkan app.use(session), setiap permintaan akan memiliki properti req.session yang dapat Anda gunakan untuk mengidentifikasi pengguna berulang. Data sesi disimpan di Firestore.
Menghapus sesi
Connect-firestore tidak menghapus sesi lama atau yang sudah berakhir. Anda dapat
menghapus data sesi
di Cloud de Confiance konsol atau menerapkan strategi penghapusan otomatis. Jika Anda menggunakan solusi penyimpanan untuk sesi seperti Memcache atau Redis, sesi yang sudah berakhir akan otomatis dihapus.
Berjalan secara lokal
Di jendela terminal Anda, instal dependensi untuk Cloud de Confiance project:
npm installMulai server HTTP:
npm startLihat aplikasi di browser web Anda:
Cloud Shell
Di toolbar Cloud Shell, klik Web preview
dan pilih Preview on port 8080.Mesin lokal
Di browser Anda, buka
http://localhost:8080Anda akan melihat salah satu dari lima sapaan: “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 Cloud de Confiance konsol.

Untuk menghentikan server HTTP, di jendela terminal Anda, tekan
Control+C.
Men-deploy dan menjalankan di App Engine
Anda dapat menggunakan lingkungan standar App Engine untuk membangun dan men-deploy aplikasi yang berjalan secara andal dalam beban berat dan dengan data dalam jumlah besar.
Tutorial ini menggunakan lingkungan standar App Engine untuk men-deploy server.
Di jendela terminal Anda, buat file
app.yamldan salin kode berikut:Deploy aplikasi di App Engine:
gcloud app deployLihat aplikasi aktif dengan memasukkan URL berikut:
https://PROJECT_ID.REGION_ID.r.appspot.comGanti kode berikut:
PROJECT_ID: Project ID Anda Cloud de ConfianceREGION_ID: Kode yang ditetapkan App Engine ke aplikasi Anda
Sapaan kini dikirim oleh server web yang berjalan pada instance App Engine.
Men-debug aplikasi
Jika Anda tidak dapat terhubung ke aplikasi App Engine, periksa hal-hal berikut:
- Pastikan perintah deployment
gcloudberhasil diselesaikan dan tidak menampilkan error apa pun. Jika ada error (misalnya,message=Build failed), perbaiki, lalu coba deploy aplikasi App Engine lagi. Di Cloud de Confiance konsol, 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 saat Anda mengunjungi aplikasi. Jika tidak melihat daftar permintaan, pastikan Anda memilih All module_id dari menu drop-down. Jika Anda melihat pesan error yang dicetak ke Cloud de Confiance konsol, pastikan kode aplikasi Anda cocok dengan kode di bagian tentang menulis aplikasi web.
Pastikan Firestore API diaktifkan.
Pembersihan
Menghapus project
- Di Cloud de Confiance konsol, buka halaman Manage resources.
- Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus instance App Engine
- Di Cloud de Confiance konsol, buka halaman Versions untuk App Engine.
- Pilih kotak centang untuk versi aplikasi non-default yang ingin Anda hapus.
- Untuk menghapus versi aplikasi, klik Hapus.
Langkah berikutnya
- Coba tutorial fungsi Cloud Run lainnya.
- 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.