Sebagian besar fungsi yang disediakan oleh paket layanan lama kini disediakan oleh Library Klien Cloud. Untuk informasi selengkapnya, lihat alternatif yang direkomendasikan yang tercantum di bawah ini.
Jika bermigrasi ke solusi yang tidak dipaketkan bukan merupakan opsi untuk project Anda, Anda mungkin dapat terus menggunakan paket layanan lama di aplikasi Python 3 sebagai pengganti. Pendekatan ini memberi Anda fleksibilitas untuk beralih ke layanan yang tidak dipaketkan nanti dalam siklus migrasi.
Setelah bermigrasi dari layanan paket lama, Anda dapat terus menggunakan App Engine atau bermigrasi ke Cloud Run. Cloud Run dirancang untuk meningkatkan pengalaman App Engine, dan menggabungkan banyak fitur terbaik dari lingkungan standar dan lingkungan fleksibel. Untuk membandingkan fitur dan memahami cara bermigrasi, lihat panduan perbandingan App Engine dan Cloud Run.
Google Cloud menyediakan produk mandiri yang menawarkan fungsi serupa dengan beberapa layanan paket lama di runtime Python. Untuk layanan paket lama yang tidak tersedia sebagai produk terpisah di Google Cloud, seperti email dan pesan, panduan ini merekomendasikan penyedia pihak ketiga atau solusi lainnya.
Halaman ini memperkenalkan jalur migrasi untuk layanan paket lama.
Memahami izin Google Cloud
Aplikasi yang dimigrasikan dan layanan Google Cloud yang digunakannya tidak berjalan di lingkungan sandbox yang sama, dan aplikasi Anda memerlukan otorisasi untuk mengakses setiap layanan. Misalnya, untuk berinteraksi dengan Firestore dalam mode Datastore (Datastore) atau Cloud Tasks, aplikasi Anda harus menyediakan kredensial untuk akun yang diotorisasi untuk mengakses layanan tersebut.
Secara default, aplikasi yang berjalan di lingkungan standar App Engine menyediakan kredensial untuk akun layanan default App Engine, yang diberi otorisasi untuk mengakses database dalam project yang sama dengan aplikasi Anda.
Jika salah satu kondisi berikut terpenuhi, gunakan metode autentikasi alternatif yang secara eksplisit memberikan kredensial:
Aplikasi Anda dan database Memorystore berada diGoogle Cloud project yang berbeda.
Anda telah mengubah peran yang ditetapkan ke akun layanan App Engine default.
Untuk mengetahui informasi tentang metode autentikasi alternatif, lihat Menyiapkan autentikasi untuk aplikasi produksi server-ke-server.
Autentikasi untuk pengembangan lokal
Untuk mengembangkan atau menguji aplikasi secara lokal, buat dan gunakan akun layanan. Jangan gunakan akun layanan App Engine default karena akun tersebut memiliki izin luas untuk project Anda. Sebagai gantinya, buat dan gunakan akun layanan dengan izin minimum yang Anda perlukan untuk tugas pengembangan dan pengujian khusus.
Untuk menyiapkan akun layanan dan menghubungkannya ke aplikasi Anda, lihat Mendapatkan dan memberikan kredensial akun layanan secara manual.
Menginstal library klien
Untuk menggunakan Google Cloud layanan dari aplikasi Python, instal library klien Python untuk layanan tersebut. Google Cloud Layanan juga menyediakan REST API dan antarmuka lainnya.
Untuk menginstal library klien untuk runtime Python 3:
Tambahkan nama library ke file
requirements.txtaplikasi Anda. Contoh:google-cloud-ndb
App Engine secara otomatis mengupload semua library yang tercantum dalam
file requirements.txt ke runtime Python 3.
Jalur migrasi untuk paket layanan App Engine
Blobstore
Untuk menyimpan dan mengambil data, gunakan Cloud Storage melalui Library Klien Cloud. Untuk memulai, lihat Menggunakan Cloud Storage serta panduan Bermigrasi dari Blobstore ke Cloud Storage. Untuk menyimulasikan migrasi ini, tambahkan penggunaan Blobstore ke aplikasi contoh, lalu migrasikan ke Cloud Storage.
Datastore
Jika aplikasi Python 2 Anda menggunakan NDB untuk berinteraksi dengan Datastore, migrasikan ke library Cloud NDB. Fungsi utama Cloud NDB adalah sebagai alat transisi untuk memigrasikan aplikasi Python 2. Sebaiknya aplikasi Python 3 menggunakan library klien mode Datastore.
Untuk mengetahui detailnya, baca Bermigrasi ke Cloud NDB. Untuk menyimulasikan migrasi ini dengan aplikasi contoh, lihat Bermigrasi dari App Engine ndb ke Cloud NDB.
Gambar
Anda dapat menayangkan gambar dari Cloud Storage, menayangkannya secara langsung, atau menggunakan jaringan penayangan konten (CDN) pihak ketiga.
Untuk mengubah ukuran, mengonversi, dan memanipulasi gambar, gunakan library pemrosesan gambar seperti Pillow atau antarmuka Python untuk ImageMagick.
Untuk menggunakan salah satu library pihak ketiga ini, tambahkan library sebagai dependensi dan update kode Anda untuk memanggil API library.
Layanan Gambar App Engine juga menyediakan fungsi untuk menghindari permintaan dinamis ke aplikasi Anda dengan menangani pengubahan ukuran gambar menggunakan URL penayangan. Jika menginginkan fungsi serupa, Anda dapat membuat gambar yang diubah ukurannya lebih awal dan menguploadnya ke Cloud Storage untuk ditayangkan. Anda juga dapat menggunakan layanan jaringan penayangan konten (CDN) pihak ketiga yang menawarkan pengubahan ukuran gambar.
Logging
Sebaiknya update aplikasi Anda untuk menggunakan Cloud Logging, yang mendukung
fitur seperti melihat log di Logs Explorer, mendownload log,
memfilter pesan menurut tingkat keparahan, dan menghubungkan pesan aplikasi dengan permintaan
tertentu. Namun, jika lebih menyukai kemudahan daripada akurasi data, Anda dapat menulis log terstruktur ke stdout atau stderr.
Untuk mengetahui informasi selengkapnya, lihat Menulis dan melihat log dan Bermigrasi ke Cloud Logging.
Memcache
Untuk meng-cache data aplikasi, gunakan Memorystore for Redis.
Untuk mengetahui detailnya, baca Memigrasikan Memcache ke Memorystore. Untuk menyimulasikan migrasi ini, tambahkan penggunaan Memcache ke aplikasi contoh dan migrasikan ke Memorystore for Redis.
Untuk aplikasi yang menggunakan Memcache hanya untuk mengurangi latensi permintaan NDB (atau Cloud NDB), gunakan dukungan bawaan Cloud NDB untuk Redis, bukan Memcache atau Memorystore for Redis.
Modul
Untuk memperoleh informasi dan mengubah layanan aplikasi yang sedang berjalan, gunakan kombinasi variabel lingkungan dan App Engine Admin API:
| Informasi layanan | Cara mengakses |
|---|---|
| ID aplikasi saat ini | Variabel lingkungan GAE_APPLICATION |
| ID project saat ini | Variabel lingkungan GOOGLE_CLOUD_PROJECT |
| Nama layanan saat ini | Variabel lingkungan GAE_SERVICE |
| Versi layanan saat ini | Variabel lingkungan GAE_VERSION |
| ID instance saat ini | Variabel lingkungan GAE_INSTANCE |
| Nama host default | Metode apps.get Admin API |
| Daftar layanan | Metode apps.services.list Admin API |
| Daftar versi layanan | Metode apps.services.versions.list Admin API |
| Versi default untuk layanan, termasuk pemisahan traffic | Metode apps.services.get Admin API |
| Daftar instance yang berjalan untuk versi | Metode apps.services.versions.instances.list Admin API |
Untuk informasi selengkapnya tentang data yang tersedia mengenai layanan yang berjalan milik aplikasi Anda, lihat lingkungan runtime Python 3 .
Namespace
API Namespace memungkinkan aplikasi multitenant untuk mempartisi data di seluruh tenant hanya dengan menentukan string namespace unik untuk setiap tenant.
Datastore mendukung multitenancy secara langsung, sedangkan layanan Google Cloud lainnya tidak. Jika aplikasi multitenant Anda menggunakan layanan Google Cloud lainnya, Anda harus menangani multitenancy secara manual. Untuk memiliki instance layanan yang sepenuhnya terisolasi, Anda dapat membuat project baru secara terprogram menggunakan Cloud Resource Manager API dan mengakses resource di seluruh project.
OAuth
Daripada menggunakan layanan OAuth App Engine untuk memverifikasi token OAuth 2.0,
gunakan
metode oauth2.tokeninfo
dari
OAuth 2.0 API.
Telusuri
Hosting database penelusuran teks lengkap seperti Elasticsearch di Compute Engine, lalu akses dari layanan Anda.
Antrean tugas
Layanan Task Queue App Engine tersedia dalam dua mode berbeda. Bermigrasi dari salah satu titik ke dua produk Cloud mandiri yang berbeda.
Tugas push
Daripada menggunakan layanan tugas push Task Queue App Engine untuk eksekusi kode asinkron, gunakan library klien Cloud Tasks dengan endpoint lingkungan standar Python 3 sebagai target. Untuk informasi selengkapnya, baca Memigrasikan push queue ke Cloud Tasks.
Untuk menyimulasikan migrasi ini dengan aplikasi contoh, baca Cara menggunakan push queue App Engine di aplikasi Flask dan bermigrasi ke Cloud Tasks.
Tugas pull
Jika Anda menggunakan layanan tugas pull Task Queue, misalnya, mengantrekan tugas atau pesan untuk diproses oleh worker terpisah, Cloud Pub/Sub dapat menjadi alternatif yang baik. Layanan ini menawarkan fungsi dan jaminan pengiriman yang serupa. Seperti layanan Cloud lainnya, Pub/Sub menyediakan library klien yang praktis untuk mengakses layanan. Untuk informasi selengkapnya, baca Menulis dan merespons pesan Pub/Sub dan panduan migrasi Tugas pull Task Queue ke Pub/Sub.
Untuk menyimulasikan migrasi ini dengan aplikasi contoh, baca penggunaan Cara menggunakan tugas pull App Engine ke aplikasi contoh dan bermigrasi ke Pub/Sub.
URL Fetch
Secara default, runtime Python 2.7 menggunakan layanan URL-fetch untuk menangani permintaan HTTP(S) keluar, meskipun Anda menggunakan library Python standar untuk mengeluarkan permintaan tersebut.
Jika aplikasi Anda menggunakan API URL-fetch secara langsung, misalnya untuk membuat permintaan asinkron, sebaiknya lakukan migrasi ke library Python standar seperti Library permintaan.
Untuk informasi selengkapnya, baca Memigrasikan Permintaan Keluar.
Autentikasi pengguna
Sebagai alternatif untuk Users API, gunakan salah satu mekanisme autentikasi berbasis HTTP yang dijelaskan di halaman Autentikasi pengguna.