Bermigrasi dari paket layanan lama

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, maka Anda mungkin dapat terus menggunakan paket layanan lama di aplikasi Python 3 sebagai gantinya. Pendekatan ini memberi Anda fleksibilitas untuk beralih ke layanan yang tidak dipaketkan nanti dalam siklus migrasi.

Google Cloud

Setelah bermigrasi dari paket layanan 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 Google Cloud menyediakan produk mandiri yang menawarkan fungsi serupa dengan beberapa paket layanan lama di runtime Python. Untuk paket layanan 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 paket layanan lama.

Memahami Google Cloud izin

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 App Engine default, yang diotorisasi 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 di project yang berbeda Google Cloud .

  • 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:

  1. Tambahkan nama library ke file requirements.txt aplikasi Anda. Contoh:

    google-cloud-ndb
    
  2. Men-deploy aplikasi Anda.

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, baca panduan Menggunakan Cloud Storage serta Bermigrasi dari Blobstore ke Cloud Storage. Untuk menyimulasikan migrasi ini, tambahkan penggunaan Blobstore ke aplikasi contoh dan 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. Aplikasi Python 3 sebaiknya 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

Untuk memigrasikan layanan App Engine Images, deploy layanan transformasi gambar dalam container ke Cloud Run dan arahkan panggilan layanan App Engine Images ke layanan tersebut. Untuk menghosting dan menayangkan gambar, simpan gambar di bucket Cloud Storage atau distribusikan menggunakan Cloud CDN. Untuk mengetahui informasi selengkapnya, lihat Memigrasikan layanan Images.

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 informasi selengkapnya, baca Menulis dan melihat log dan Bermigrasi ke Cloud Logging.

Email

Untuk meningkatkan keamanan email dan memastikan pengiriman email bervolume tinggi yang andal, sebaiknya Anda migrasikan dari Mail API lama ke layanan email berbasis SMTP, seperti SendGrid, Mailgun, atau Mailjet.

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 Java 11/17 PHP 7/8 Go 1.12+ 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 menggunakan layanan lain Google Cloud, 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 oauth2.tokeninfo metode dari OAuth 2.0 API.

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.