Bermigrasi ke Cloud Endpoints Frameworks versi 2.0

Framework Cloud Endpoints sebelumnya disebut Endpoint. Untuk membedakan kedua versi tersebut, halaman ini menyebut versi baru sebagai Endpoint Frameworks versi 2.0, dan versi lama sebagai Endpoint versi 1.0. Halaman ini menjelaskan cara memigrasikan aplikasi Cloud Endpoints versi 1.0 ke Endpoint Frameworks versi 2.0. Migrasi terdiri dari perubahan library dan perubahan konfigurasi aplikasi, tetapi Anda tidak perlu membuat perubahan pada kode.

Manfaat

Endpoint versi 2.0 menghadirkan sejumlah manfaat, antara lain:

  • Mengurangi latensi permintaan.
  • Integrasi yang lebih baik dengan fitur App Engine, seperti domain kustom.
  • Fitur pengelolaan API baru.

Framework Endpoint versi 2.0 tidak memengaruhi antarmuka ke API Anda. Klien yang ada akan terus bekerja setelah migrasi tanpa perlu mengubah kode sisi klien.

Ringkasan fitur

Fitur berikut kompatibel dengan Endpoint versi 1.0:

  • Protokol JSON-REST, yang digunakan oleh semua library klien Google
  • Layanan penemuan
  • Semua fitur autentikasi yang ada (OAuth2/OpenID Connect)
  • Dukungan library klien untuk klien yang dihasilkan
  • CORS (untuk pemanggil JavaScript yang tidak menggunakan library klien JavaScript Google)
  • Penjelajah API

Pemisahan traffic tidak tersedia.

Fitur yang saat ini dikecualikan

Fitur berikut tidak tersedia. Jika Anda memerlukan salah satu dari hal tersebut, kirimkan permintaan fitur.

  • Protokol JSON-RPC, yang diperlukan untuk klien iOS lama. Untuk membuat klien iOS untuk Endpoints Frameworks versi 2.0 API, sebaiknya gunakan library klien Objective-C Google API untuk REST API.
  • ETag otomatis
  • Kolom kind otomatis
  • Integrasi IDE
  • fields jawaban sebagian
  • Pembuatan metode PATCH API otomatis

Bermigrasi dari Endpoint versi 1.0

Untuk bermigrasi dari versi 1.0:

  1. Buat subfolder bernama /lib di direktori utama aplikasi Anda.

  2. Instal library dari direktori utama aplikasi Anda:

     pip install -t lib google-endpoints --ignore-installed
    
  3. Hapus entri - name: endpoints dan version 1.0 dari file app.yaml aplikasi Anda di bagian libraries. Contoh:

    libraries:
    - name: endpoints   #Remove
      version: 1.0      #Remove
    
  4. Di bagian libraries pada file app.yaml, tambahkan kode berikut:

    libraries:
    - name: pycrypto
      version: 2.6
    - name: ssl
      version: 2.7.11
    

    Framework Endpoint memerlukan versi library pycrypto dan ssl ini.

  5. Di bagian handlers dalam file app.yaml, ubah perintah url dari - url: /_ah/spi/.* menjadi - url: /_ah/api/.*.

  6. Dalam direktori utama aplikasi Anda, buat atau ubah file bernama appengine_config.py untuk menyertakan hal berikut:

    from google.appengine.ext import vendor
    
    vendor.add('lib')
    
  7. Periksa string versi API Anda. String versi, yang ditentukan dalam dekorator @endpoints.api(version='v1', ...), muncul di jalur API Anda. Jika Anda menentukan string versi yang kompatibel dengan standar SemVer, hanya nomor versi utama yang akan muncul di jalur API saat Anda men-deploy API. Misalnya, API bernama echo dengan versi 2.1.0 akan memiliki jalur seperti /echo/v2. Jika Anda mengupdate echo API ke versi 2.2.0 dan men-deploy perubahan yang kompatibel dengan versi lama, jalurnya akan tetap /echo/v2. Dengan begitu, Anda dapat memperbarui nomor versi API saat membuat perubahan yang kompatibel dengan versi sebelumnya tanpa memutus jalur yang ada untuk klien Anda. Namun, jika Anda mengupdate echo API ke versi 3.0.0 (karena Anda men-deploy perubahan yang dapat menyebabkan gangguan), jalur akan diubah menjadi /echo/v3.

  8. Deploy ulang aplikasi Endpoints Frameworks Anda.

Memverifikasi deployment baru

Untuk memverifikasi bahwa framework baru menyalurkan traffic:

  1. Kirim beberapa permintaan ke deployment baru.
  2. Buka halaman Cloud Logging untuk project Anda.

    Buka halaman Logs Explorer

  3. Jika permintaan ditampilkan dengan jalur yang diawali dengan /_ah/api, maka Framework Endpoint versi 2.0 kini menyalurkan API Anda. Log tidak boleh menampilkan permintaan apa pun dengan jalur yang diawali dengan /_ah/spi. Permintaan ini menunjukkan bahwa proxy Endpoint versi 1.0 masih menangani permintaan.

Menambahkan pengelolaan API

Framework Endpoints versi 2.0 menambahkan fitur pengelolaan API, termasuk:

  • Pengelolaan kunci API
  • Berbagi API
  • Autentikasi pengguna
  • Metrik API
  • Log API

Untuk memulai, buka halaman Mulai menggunakan Endpoints Frameworks untuk Python.

Pemecahan masalah

Bagian ini menjelaskan perilaku tidak menentu umum saat bermigrasi ke Endpoint Frameworks versi 2.0 dan solusi yang disarankan.

API menampilkan 404 error, tetapi API Explorer masih mencantumkan API dengan benar

Anda harus menghapus konfigurasi Endpoint versi 1.0 lama saat bermigrasi ke Framework Endpoints versi 2.0. Jika konfigurasi lama masih ada dalam konfigurasi aplikasi, layanan Endpoint akan terus memperlakukan aplikasi sebagai aplikasi versi 1.0. Anda mungkin melihat permintaan dalam log App Engine yang dikirim ke /_ah/spi, yang mengakibatkan error HTTP 404 dikirim ke klien.

  1. Hapus baris berikut, dari file app.yaml jika ada:

    handlers:
    - url: /_ah/spi/.*
      script: ...
    
  2. Pastikan bagian handlers dalam file app.yaml Anda memiliki jalur yang benar:

    handlers:
    # The endpoints handler must be mapped to /_ah/api.
    - url: /_ah/api/.*
      script: ...
    

Pesan error: ImportError: cannot import name locked_file

Hal ini terjadi jika dependensi Anda berisi versi library oauth2client yang tidak kompatibel dengan App Engine. Lihat masalah umum.