Membandingkan Framework Extensible Service Proxy dan Cloud Endpoints

Halaman ini menjelaskan perbedaan antara Endpoints Frameworks untuk lingkungan standar App Engine dan Extensible Service Proxy (ESP), yang digunakan dalam Cloud Endpoints untuk API menggunakan OpenAPI atau gRPC. Untuk mengetahui informasi selengkapnya tentang opsi Endpoint, lihat Memilih opsi Endpoint.

Ringkasan

Cloud Endpoints adalah sistem pengelolaan API yang membantu Anda mengamankan, memantau, menganalisis, dan menetapkan kuota pada API menggunakan infrastruktur yang sama dengan yang digunakan Google untuk API-nya sendiri. Fitur pengelolaan API mencakup autentikasi, kunci API, pemantauan, logging, dan pelacakan, terlepas dari teknologi yang digunakan untuk mengimplementasikan API. Fungsi pengelolaan API disediakan melalui ESP atau menggunakan Framework Endpoints.

Extensible Service Proxy

Di Endpoint untuk OpenAPI dan gRPC, permintaan API diteruskan melalui Extensible Service Proxy, yang memvalidasi kunci dan token autentikasi, serta mengirim sinyal (metrik dan log) menggunakan Service Control API. Pemisahan yang disediakan oleh ESP berarti Anda dapat menulis kode backend REST atau gRPC dalam bahasa apa pun, dan Anda dapat menggunakan gRPC atau framework apa pun yang mendukung deskripsi API menggunakan OpenAPI.

  • API menggunakan OpenAPI: Backend API dapat berjalan di lingkungan fleksibel App Engine, Google Kubernetes Engine (GKE), Compute Engine, Kubernetes, atau deployment lokal.

  • API menggunakan gRPC: Backend API dapat berjalan di GKE, Compute Engine, Kubernetes, atau deployment lokal.

Arsitektur ESP

Permintaan dikirim di jalur berikut:

  1. Permintaan ke kode Anda diterima dan dikirim ke ESP.
  2. ESP mengirimkan permintaan pemeriksaan ke Kontrol Layanan.
  3. Jika Anda mengonfigurasi API agar mewajibkan kunci API atau autentikasi, Service Control akan memeriksa apakah permintaan tersebut diizinkan dan mengirimkan respons kembali ke ESP.
  4. Jika permintaan tidak diizinkan, ESP akan menolak permintaan tersebut. Jika permintaan diizinkan, permintaan tersebut akan diteruskan ke kode backend Anda. Apa pun itu, ESP mencatat informasi tentang permintaan tersebut.

Harga pengelolaan Endpoints API bergantung pada jumlah panggilan per bulan.

Framework Endpoint

Untuk backend API yang berjalan di lingkungan standar App Engine, Framework Endpoint tersedia untuk membantu developer mulai menyalurkan API dengan cepat. Endpoints Frameworks adalah framework web dan merupakan alternatif untuk Python Flask atau Java Jersey. Framework Endpoints terintegrasi dengan Service Control API, yang berarti backend yang menggunakan Framework Endpoint tidak perlu berjalan di belakang Extensible Service Proxy.

Framework Endpoint

Jika Anda telah mengaktifkan Pengelolaan API, permintaan akan dikirim di jalur berikut:

  1. Permintaan ke kode Anda telah diterima dan dikirim ke modul Pengelolaan Endpoint dalam Framework Endpoint.
  2. Modul Pengelolaan Endpoint mengirimkan permintaan pemeriksaan ke Kontrol Layanan.
  3. Jika Anda mengonfigurasi API agar mewajibkan kunci API atau autentikasi, Service Control akan memeriksa apakah permintaan tersebut diizinkan, lalu mengirimkan respons kembali ke modul Pengelolaan Endpoint.
  4. Jika permintaan tidak diizinkan, modul Pengelolaan Endpoint akan menolak permintaan tersebut. Jika diizinkan, permintaan akan diteruskan ke Framework Endpoint. Apa pun itu, modul Pengelolaan Endpoint mencatat informasi tentang permintaan tersebut ke dalam log.
  5. Framework Endpoint mengarahkan permintaan ke kode backend Anda.

Anda dapat menggunakan Framework Endpoint dengan atau tanpa fungsi pengelolaan API. Penggunaan Framework Endpoint tanpa fungsi pengelolaan API ditawarkan tanpa biaya. Fungsi pengelolaan API dikenai biaya sesuai dengan halaman harga Endpoint.

Framework Endpoint hanya didukung untuk layanan yang berjalan di lingkungan standar App Engine. Di Compute Engine, GKE, lingkungan fleksibel App Engine, atau lingkungan lainnya, layanan Anda harus berjalan di belakang ESP.

Jika layanan berjalan di belakang ESP, Anda dapat menulis kode backend dalam bahasa dan framework apa pun, seperti Python Flask, Java Jersey, atau Node.js Express. Di lingkungan tersebut, Anda tidak perlu menggunakan Framework Endpoint untuk pengelolaan API.

Langkah selanjutnya