Masalah umum

Halaman ini berisi masalah umum di Framework Cloud Endpoints.

Java dan Python

Bagian ini menjelaskan masalah umum yang memengaruhi Framework Endpoints versi Java dan Python.

Waktu tunggu permintaan maksimum

Untuk API yang menggunakan Endpoints Framework versi 2, waktu tunggu permintaan maksimum adalah 60 detik.

Migrasi Endpoints Frameworks

Saat memigrasikan API ke Endpoints Frameworks versi 2, Anda harus men-deploy API ke aplikasi App Engine baru. Jika Anda menggunakan kembali aplikasi App Engine lama, permintaan yang dimulai dengan jalur versi 1, /_ah/spi, mungkin dirutekan ke backend Endpoints Frameworks versi 2, yang mengharapkan jalur dimulai dengan /_ah/api.

Performa buruk pada instance penskalaan otomatis

App Engine menawarkan tiga jenis penskalaan: dasar, manual, dan otomatis. Framework Endpoint menggunakan thread latar belakang, yang tidak didukung oleh instance penskalaan otomatis. Framework Endpoint harus berkomunikasi dengan layanan Google untuk memeriksa kuota dan melaporkan aktivitas API, di antara hal lainnya. Untuk instance penskalaan dasar dan manual, thread latar belakang melakukan komunikasi ini untuk menghindari pelambatan permintaan. Namun, instance penskalaan otomatis tidak mendukung thread latar belakang. Sebagai gantinya, komunikasi dengan layanan Google terjadi selama permintaan. Framework Endpoint masih berfungsi, tetapi dengan performa yang berpotensi berkurang.

Karena masalah ini, sebaiknya konfigurasikan jenis penskalaan lain. Lihat bagian berikut dalam dokumentasi App Engine:

Jalur dengan garis miring di akhir tidak didukung

Saat Anda men-deploy dokumen OpenAPI menggunakan gcloud endpoints services deploy, Cloud Endpoints akan menolak dokumen OpenAPI yang menyertakan jalur dengan garis miring akhir, misalnya:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

Di Framework Endpoints, Anda harus menghapus garis miring akhir di dekorator metode Python atau anotasi metode Java.

Java

Bagian ini menjelaskan masalah umum di Framework Endpoint untuk Java.

Framework Endpoints Java Lama (v1)

Endpoints Frameworks versi 1 untuk Java memiliki bug yang menampilkan pengecualian saat enum dianotasi. Masalah ini disebabkan oleh dependensi pada versi lama Jackson. Untuk mengatasi masalah ini, Anda harus bermigrasi ke Endpoints Frameworks versi 2.

Python

Bagian ini menjelaskan masalah umum di Framework Endpoints untuk Python.

Pesan error: ImportError: cannot import name locked_file

Saat menjalankan pip install dengan file requirements.txt, Anda mungkin mendapatkan pesan error ImportError: cannot import name locked_file. Masalah ini disebabkan saat pip menginstal versi paket oauth2client yang tidak kompatibel dengan google-endpoints-api-management. Untuk mengatasi masalah ini, pastikan baris google-endpoints dan google-endpoints-api-management muncul terlebih dahulu dalam file requirements.txt Anda, misalnya:

google-endpoints==4.8.0
google-endpoints-api-management==1.11.1
# Newer versions of rsa module are incompatible with Python 2.7
rsa==4.5; python_version < '3'

Tambahkan persyaratan lain setelah baris ini.

API menampilkan error 404 saat melakukan pengujian secara lokal

Gejala: Semua endpoint menampilkan 404 saat Anda menggunakan dev_appserver.py untuk menguji API secara lokal, tetapi saat Anda men-deploy API ke App Engine, endpoint akan merespons seperti yang diharapkan. Masalah ini telah diamati dalam aplikasi yang menggunakan library Django-six.

Masalah ini disebabkan oleh konflik versi antara library python-future, yang disertakan dalam library Endpoints Frameworks for Python dan library Django-six. Versi persis library Django-six yang menyebabkan konflik saat ini tidak diketahui.