Halaman ini menjelaskan cara men-deploy kode backend API dan Extensible Service Proxy (ESP) ke Google Kubernetes Engine, Compute Engine, dan lingkungan fleksibel App Engine.
Meskipun langkah-langkah deployment bervariasi bergantung pada platform yang menghosting API Anda, selalu ada langkah saat Anda memberikan nama layanan ESP dan opsi yang mengonfigurasi ESP untuk menggunakan konfigurasi layanan Cloud Endpoints yang di-deploy terbaru. Dengan informasi ini, ESP dapat memperoleh konfigurasi Endpoints API Anda, yang memungkinkan ESP memproses permintaan dan respons sehingga Endpoints dapat mengelola API Anda.
Prasyarat
Sebagai titik awal, halaman ini mengasumsikan bahwa Anda telah:
Mempersiapkan deployment
Lingkungan fleksibel App Engine
Dengan penambahan langkah konfigurasi kecil (dijelaskan dalam langkah-langkah berikut), men-deploy API Anda sehingga dikelola oleh Endpoints sama dengan men-deploy aplikasi apa pun ke lingkungan fleksibel App Engine. Ikuti dokumentasi App Engine untuk:
- Mengatur file konfigurasi Anda.
-
Membuat file konfigurasi
app.yaml - Jika aplikasi Anda berbasis microservice, lihat
Men-deploy
aplikasi beberapa layanan
dokumentasi untuk mengetahui informasi tentang cara mengonfigurasi file
app.yamluntuk setiap layanan.
Anda men-deploy API ke App Engine menggunakan
gcloud app deploy
perintah. Perintah ini secara otomatis membuat image container menggunakan layanan
Container Builder, lalu
men-deploy image tersebut ke lingkungan fleksibel App Engine Anda.
Sebelum Anda men-deploy:
- Pemilik project harus membuat aplikasi App Engine. Google Cloud
- Pastikan bahwa akun pengguna Anda menyertakan hak istimewa yang diperlukan.
Compute Engine
Agar Endpoints dapat mengelola API Anda, Anda harus menginstal dan mengonfigurasi ESP, serta kode server backend untuk API Anda. Anda perlu menginstal Docker di instance VM Compute Engine sehingga dapat menjalankan image Docker ESP yang tersedia secara gratis di Artifact Registry.
Sebelum Anda men-deploy:
Berikut ini garis besar langkah-langkah yang harus Anda lakukan sebelum Anda dapat men-deploy API dan ESP ke Compute Engine. Secara umum, Anda melakukan semua langkah yang biasanya dilakukan untuk menjalankan kode server backend di Compute Engine.
- Buat, konfigurasi, dan mulai instance VM Anda. Lihat dokumentasi Compute Engine.
- Instal Docker Enterprise Edition (EE) atau Docker Community Edition (CE) di instance VM Anda. Lihat Menginstal Docker.
- Buat container Docker untuk kode server backend Anda. Lihat dokumentasi Cloud Build.
- Kirim container ke Artifact Registry atau registry lainnya.
- Pastikan Anda dapat berhasil:
- Menghubungkan ke instance VM.
- Menjalankan image Docker untuk memulai server backend di instance VM. Lihat referensi Docker run.
- Mengirim permintaan ke API Anda.
GKE
Saat Anda membuat cluster di Google Cloud konsol, secara default, cakipesan OAuth yang diberikan ke akun layanan cluster mencakup cakupan yang diperlukan Endpoints:
- Service Control: Aktif
- Service Management: Hanya Baca
Saat Anda membuat cluster menggunakan perintah
gcloud container clusters create atau menggunakan file konfigurasi pihak ketiga, pastikan Anda menentukan cakupan berikut:
"https://www.googleapis.com/auth/servicecontrol""https://www.googleapis.com/auth/service.management.readonly"
Untuk mengetahui informasi selengkapnya, lihat Apa yang dimaksud dengan cakupan akses?
Sebelum Anda men-deploy:
Dengan menambahkan bagian kecil ke file manifes Deployment, Anda dapat menjalankan image Docker ESP di cluster container bersama dengan aplikasi dalam container. Berikut ini garis besar langkah-langkah yang harus Anda lakukan sebelum dapat men-deploy API dengan ESP ke GKE. Secara umum, Anda melakukan semua langkah yang biasanya dilakukan untuk menjalankan kode server backend di GKE.
- Deploy aplikasi dalam container Anda ke cluster container. Langkah-langkah umum seperti yang dijelaskan dalam dokumentasi GKE adalah:
- Mengemas aplikasi Anda ke dalam image Docker.
- Mengupload image ke registry.
- Membuat cluster container.
- Men-deploy aplikasi Anda ke cluster.
- Mengekspos aplikasi Anda ke internet.
- Pastikan Anda dapat berhasil:
- Memulai server API Anda.
- Mengirim permintaan ke API Anda.
Men-deploy API dan ESP
Lingkungan fleksibel App Engine
Untuk men-deploy API dan ESP ke App Engine:
- Dapatkan
nama layanan API Anda. Ini adalah nama yang Anda tentukan di kolom
hostdokumen OpenAPI Anda. - Edit file
app.yaml, dan tambahkan bagian bernamaendpoints_api_serviceyang berisi nama layanan. Anda dapat menggunakan fileapp.yamldari tutorial sebagai model:Java Python Go PHP Ruby NodeJS Ganti
ENDPOINTS-SERVICE-NAMEdengan nama layanan API Anda.Tambahkan variabel runtime dan lingkungan dalam file konfigurasi
app.yaml.Contoh:
runtime: nodejs env: flex endpoints_api_service: name: example-project-12345.appspot.com rollout_strategy: managed
Opsi
rollout_strategy: managedmengonfigurasi ESP untuk menggunakan konfigurasi layanan yang di-deploy terbaru. Saat Anda menentukan opsi ini, hingga 5 menit setelah Anda men-deploy konfigurasi layanan baru, ESP akan mendeteksi perubahan dan otomatis mulai menggunakannya. Sebaiknya tentukan opsi ini, bukan ID konfigurasi tertentu untuk digunakan ESP.Jika aplikasi Anda berbasis microservice, Anda harus menyertakan bagian
endpoints_api_servicedi setiap fileapp.yaml. - Simpan file
app.yaml(atau file). - Deploy kode backend dan ESP ke App Engine:
gcloud app deploy
Karena Anda menambahkan bagian endpoints_api_service ke file
app.yaml, perintah gcloud app deploy akan men-deploy
dan mengonfigurasi ESP dalam container terpisah ke lingkungan fleksibel App Engine Anda. Semua traffic permintaan dirutekan melalui
ESP, dan ESP
memproses permintaan dan respons ke dan dari container yang menjalankan kode server backend Anda.
Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:
- Di bagian
endpoints_api_servicefileapp.yaml, tambahkan kolomconfig_iddan tetapkan ke ID konfigurasi tertentu. - Hapus
rollout_strategy: managedatau tetapkanrollout_strategykefixed. Opsifixedmengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan diconfig_id. - Deploy ulang API dan ESP Anda:
gcloud app deploy
Sebaiknya jangan biarkan ESP dikonfigurasi untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika Anda men-deploy konfigurasi layanan yang diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru.
Untuk menghapus ID konfigurasi tertentu:
- Hapus opsi
config_iddari fileapp.yaml. - Tambahkan opsi
rollout_strategy: managed. - Keluarkan perintah
gcloud app deploy
Saat Anda menggunakan opsi rollout_strategy: managed, jangan sertakan
config_id: YOUR_SERVICE_CONFIG_ID dalam file
app.yaml. Jika Anda melakukannya, gcloud app deploy akan gagal
dengan error berikut:
config_id is forbidden when rollout_strategy is set to "managed".
Saat Anda men-deploy API ke lingkungan fleksibel App Engine untuk pertama kalinya, mungkin akan terjadi penundaan saat mesin virtual (VM) dan infrastruktur lainnya disiapkan. Untuk mengetahui informasi tambahan, lihat Memastikan deployment berhasil dalam dokumentasi App Engine.
Compute Engine
Untuk men-deploy API dengan ESP ke Compute Engine dengan Docker:
- Menghubungkan ke instance VM Anda. Ganti
INSTANCE_NAMEdengan nama instance VM Anda.gcloud compute ssh INSTANCE_NAME
- Buat jaringan container Anda sendiri yang disebut
esp_net:sudo docker network create --driver bridge esp_net
- Jalankan instance image kode server backend Anda dan hubungkan ke jaringan container
esp_net:sudo docker run \ --detach \ --name=YOUR_API_CONTAINER_NAME \ --net=esp_net \ gcr.io/YOUR_PROJECT_ID/YOUR_IMAGE:1.0- Ganti
YOUR_API_CONTAINER_NAMEdengan nama container Anda. - Ganti
YOUR_PROJECT_IDdengan Google Cloud project ID yang Anda gunakan saat mengirim image. - Ganti
YOUR_IMAGEdengan nama image Anda.
- Ganti
- Dapatkan nama
layanan API Anda. Ini adalah nama yang Anda tentukan di kolom
hostdokumen OpenAPI Anda. - Jalankan instance image Docker ESP:
sudo docker run \ --name=esp \ --detach \ --publish=80:8080 \ --net=esp_net \ gcr.io/endpoints-release/endpoints-runtime:1 \ --service=SERVICE_NAME \ --rollout_strategy=managed \ --backend=YOUR_API_CONTAINER_NAME:8080- Ganti
SERVICE_NAMEdengan nama layanan Anda. - Ganti
YOUR_API_CONTAINER_NAMEdengan nama container API Anda.
Opsi
--rollout_strategy=managedmengonfigurasi ESP untuk menggunakan konfigurasi layanan yang di-deploy terbaru. Saat Anda menentukan opsi ini, hingga 5 menit setelah Anda men-deploy konfigurasi layanan baru, ESP akan mendeteksi perubahan dan otomatis mulai menggunakannya. Sebaiknya tentukan opsi ini, bukan ID konfigurasi tertentu untuk digunakan ESP. - Ganti
Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:
- Sertakan opsi
--versiondan tetapkan ke ID konfigurasi tertentu. konfigurasi. - Hapus opsi
--rollout_strategy=managedatau tetapkan--rollout_strategykefixed. Opsifixedmengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan di--version. - Keluarkan perintah
docker runlagi.
Jika Anda menentukan opsi --rollout_strategy=managed dan
--version, ESP akan dimulai dengan konfigurasi
yang Anda tentukan di --version, tetapi kemudian berjalan dalam mode terkelola
dan mendapatkan konfigurasi terbaru.
Sebaiknya jangan biarkan ESP dikonfigurasi untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika Anda men-deploy konfigurasi layanan yang diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru.
Untuk menghapus ID konfigurasi tertentu:
- Di flag ESP untuk
docker run, hapus opsi--version. - Tambahkan opsi
--rollout_strategy=managed. - Keluarkan perintah
docker rununtuk memulai ulang ESP.
Lihat opsi startup ESPuntuk mengetahui daftar lengkap opsi yang dapat Anda tentukan saat memulai ESP.
GKE
Untuk men-deploy ESP ke GKE:
- Dapatkan
nama layanan API Anda (nama yang Anda tentukan di kolom
hostdokumen OpenAPI Anda). - Buka file manifes Deployment Anda (disebut sebagai file
deployment.yaml) dan tambahkan hal berikut ke bagian container:containers: - name: esp image: gcr.io/endpoints-release/endpoints-runtime:1 args: [ "--http_port=8081", "--backend=127.0.0.1:8080", "--service=SERVICE_NAME", "--rollout_strategy=managed" ]Ganti
SERVICE_NAMEdengan nama layanan API Anda.Opsi
--rollout_strategy=managed"mengonfigurasi ESP untuk menggunakan konfigurasi layanan yang di-deploy terbaru. Saat Anda menentukan opsi ini, hingga 5 menit setelah Anda men-deploy konfigurasi layanan baru, ESP akan mendeteksi perubahan dan otomatis mulai menggunakannya. Sebaiknya tentukan opsi ini, bukan ID konfigurasi tertentu untuk digunakan ESP. - Mulai layanan Kubernetes menggunakan perintah
kubectl create:
kubectl create -f deployment.yaml
Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:
- Di file manifes Deployment Anda, tambahkan opsi
--versiondan tetapkan ke ID konfigurasi tertentu. - Hapus
--rollout_strategy=managedatau tetapkan--rollout_strategykefixed. Opsifixedmengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan di--version. - Mulai layanan Kubernetes:
kubectl create -f deployment.yaml
Jika Anda menentukan opsi --rollout_strategy=managed dan
--version, ESP akan dimulai dengan konfigurasi
yang Anda tentukan di --version, tetapi kemudian berjalan dalam mode terkelola dan
mendapatkan konfigurasi terbaru.
Sebaiknya jangan biarkan ESP dikonfigurasi untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika Anda men-deploy konfigurasi layanan yang diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru.
Untuk menghapus ID konfigurasi tertentu:
- Di file manifes Deployment Anda, hapus opsi
--version. - Tambahkan
--rollout_strategy=managed. - Mulai layanan Kubernetes:
kubectl create -f deployment.yaml
Lihat opsi startup ESPuntuk mengetahui daftar lengkap opsi yang dapat Anda tentukan saat memulai ESP.
Melacak aktivitas API
Setelah men-deploy ESP dan backend API, Anda dapat menggunakan alat seperti curl atau Postman untuk mengirim permintaan ke API Anda. Jika Anda tidak mendapatkan respons yang berhasil, lihat
Memecahkan masalah error respons.
Setelah mengirim beberapa permintaan, Anda dapat:
Melihat grafik aktivitas untuk API Anda di Endpoints > Services.
Buka halaman Endpoints Services
Mungkin perlu beberapa saat agar permintaan ditampilkan dalam grafik.Melihat log permintaan untuk API Anda di halaman Cloud Logging.
Langkah berikutnya
- Memecahkan masalah deployment lingkungan fleksibel App Engine.
- Memecahkan masalah Endpoints di Compute Engine.
- Memecahkan masalah Endpoints di Google Kubernetes Engine.