Men-deploy backend API

Halaman ini menjelaskan cara men-deploy kode backend API dan Extensible Service Proxy (ESP) ke Google Kubernetes Engine dan Compute Engine.

Meskipun langkah-langkah deployment dapat bervariasi bergantung pada platform yang menghosting API Anda, selalu ada langkah di mana Anda memberikan nama layanan pada ESP dan opsi yang mengonfigurasi ESP untuk menggunakan konfigurasi layanan Cloud Endpoints yang terbaru di-deploy. Dengan informasi ini, ESP dapat memperoleh konfigurasi Endpoint API, yang memungkinkan proxy ESP meminta dan merespons, sehingga Cloud Endpoints dapat mengelola API Anda.

Prasyarat

Sebagai titik awal, halaman ini mengasumsikan bahwa Anda telah:

Menyiapkan deployment

Compute Engine

Agar Endpoint dapat mengelola API, Anda harus menginstal dan mengonfigurasi ESP serta kode server backend untuk API Anda. Anda harus menginstal Docker di instance VM Compute Engine agar dapat menjalankan image Docker ESP yang tersedia gratis di Container Registry.

Sebelum Anda melakukan deployment:

Sebelum Anda dapat men-deploy API dan ESP ke Compute Engine, selesaikan langkah-langkah berikut:

  1. Buat, konfigurasi, dan mulai instance VM Anda.
  2. Instal Docker Enterprise Edition (EE) atau Docker Community Edition (CE) di instance VM Anda.
  3. Buat container Docker untuk kode server backend Anda.
  4. Kirim container ke Container Registry atau registry lainnya.
  5. Pastikan Anda berhasil:

GKE

Saat Anda membuat cluster di Google Cloud Console, secara default, cakupan OAuth yang diberikan ke akun layanan cluster mencakup cakupan yang diperlukan Endpoint:

  • Kontrol Layanan: Diaktifkan
  • Pengelolaan Layanan: Hanya Baca

Saat 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 melakukan deployment:

Dengan penambahan bagian kecil pada file manifes Deployment, Anda dapat menjalankan image Docker ESP di cluster container bersama dengan aplikasi dalam container. Sebelum Anda dapat men-deploy API dengan ESP ke GKE, selesaikan langkah-langkah berikut:

  1. Deploy aplikasi dalam container Anda ke cluster container. Langkah-langkah umum seperti yang dijelaskan dalam dokumentasi GKE adalah:

    1. Kemas aplikasi Anda menjadi image Docker.
    2. Upload image ke registry.
    3. Buat cluster container.
    4. Deploy aplikasi Anda ke cluster.
    5. Ekspos aplikasi Anda ke internet.
  2. Pastikan Anda berhasil:

    • Mulai server API Anda.
    • Kirim permintaan ke API Anda.

Men-deploy API dan ESP Anda

Compute Engine

Untuk men-deploy API dengan ESP ke Compute Engine dengan Docker:

  1. Hubungkan ke instance VM Anda. Ganti INSTANCE_NAME dengan nama instance VM Anda:

    gcloud compute ssh INSTANCE_NAME
    
  2. Buat jaringan container Anda sendiri yang bernama esp_net:

    sudo docker network create --driver bridge esp_net
    
  3. 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
    
    • Ganti YOUR_API_CONTAINER_NAME dengan nama penampung Anda.
    • Ganti YOUR_PROJECT_ID dengan project ID Google Cloud yang Anda gunakan saat mengirim image.
    • Ganti YOUR_IMAGE dengan nama gambar Anda.
  4. Mendapatkan nama layanan API Anda. Ini adalah nama yang Anda tentukan di kolom name pada file YAML konfigurasi layanan.

  5. Jalankan instance image Docker ESP:

    sudo docker run \
        --detach \
        --name=esp \
        --publish=80:9000 \
        --net=esp_net \
        gcr.io/endpoints-release/endpoints-runtime:1 \
        --service=SERVICE_NAME \
        --rollout_strategy=managed \
        --http2_port=9000 \
        --backend=grpc://YOUR_API_CONTAINER_NAME:8000
    
    • Ganti SERVICE_NAME dengan nama layanan Anda.
    • Ganti YOUR_API_CONTAINER_NAME dengan nama penampung API Anda.

    Opsi --rollout_strategy=managed mengonfigurasi ESP untuk menggunakan konfigurasi layanan terbaru yang di-deploy. Saat Anda menentukan opsi ini, hingga 5 menit setelah Anda men-deploy konfigurasi layanan baru, ESP mendeteksi perubahan dan otomatis mulai menggunakannya. Sebaiknya tentukan opsi ini, bukan ID konfigurasi tertentu yang akan digunakan ESP.

Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:

  1. Sertakan opsi --version dan tetapkan ke ID konfigurasi tertentu.

  2. Hapus opsi --rollout_strategy=managed atau tetapkan --rollout_strategy ke fixed. Opsi fixed mengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan di --version.

  3. Jalankan perintah docker run lagi.

Jika Anda menentukan opsi --rollout_strategy=managed dan --version, ESP akan memulai dengan konfigurasi yang Anda tentukan dalam --version, tetapi kemudian berjalan dalam mode terkelola dan mendapatkan konfigurasi terbaru.

Sebaiknya jangan mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika men-deploy konfigurasi layanan yang diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru.

Untuk menghapus ID konfigurasi tertentu:

  1. Pada tanda ESP untuk docker run, hapus opsi --version.

  2. Tambahkan opsi --rollout_strategy=managed.

  3. Untuk memulai ulang ESP, jalankan perintah docker run.

Lihat Opsi startup ESP untuk daftar lengkap opsi yang dapat ditentukan saat memulai ESP.

GKE

Untuk men-deploy ESP ke GKE:

  1. Dapatkan nama layanan API Anda.

  2. Buka file manifes Deployment Anda (disebut deployment.yaml) lalu tambahkan hal berikut ke bagian containers:

          containers:
          - name: esp
            image: gcr.io/endpoints-release/endpoints-runtime:1
            args: [
              "--http2_port=9000",
              "--service=SERVICE_NAME",
              "--rollout_strategy=managed",
              "--backend=grpc://127.0.0.1:8000"
            ]
            ports:
              - containerPort: 9000
    

    Ganti SERVICE_NAME dengan nama layanan API Anda.

  3. Mulai layanan Kubernetes menggunakan perintah kubectl create:

        kubectl create -f deployment.yaml
    

Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:

  1. Dalam file manifes Deployment Anda, tambahkan opsi --version dan tetapkan ke ID konfigurasi tertentu.

  2. Hapus --rollout_strategy=managed atau tetapkan --rollout_strategy ke fixed. Opsi fixed mengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan di --version.

  3. Mulai layanan Kubernetes: kubectl create -f deployment.yaml

Jika Anda menentukan opsi --rollout_strategy=managed dan --version, ESP akan memulai dengan konfigurasi yang telah Anda tentukan di --version, tetapi kemudian akan berjalan dalam mode terkelola dan mendapatkan konfigurasi terbaru.

Sebaiknya jangan mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika men-deploy konfigurasi layanan yang telah diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru tersebut.

Untuk menghapus ID konfigurasi tertentu:

  1. Di file manifes Deployment, hapus opsi --version.

  2. Menambahkan --rollout_strategy=managed.

  3. Mulai layanan Kubernetes: kubectl create -f deployment.yaml

Lihat Opsi startup ESP untuk daftar lengkap opsi yang dapat ditentukan 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. Jika tidak mendapatkan respons yang berhasil, lihat Memecahkan masalah error respons

Setelah mengirim beberapa permintaan, Anda dapat:

Langkah selanjutnya