Men-deploy API yang dikelola oleh Cloud Endpoints

Panduan Memulai ini memandu Anda men-deploy API contoh, yang dikelola Endpoints. Kode contoh mencakup:

  • REST API yang dapat Anda buat kuerinya untuk menemukan nama bandara dari kode IATA tiga hurufnya.
  • Skrip yang mengupload konfigurasi API ke Endpoints.
  • Skrip yang men-deploy backend lingkungan fleksibel App Engine untuk menghosting API contoh.

Setelah mengirim permintaan ke API contoh, Anda dapat melihat grafik aktivitas Endpoint dan log Kemampuan Observasi Google Cloud di Konsol Google Cloud. Alat ini memungkinkan Anda memantau API dan mendapatkan insight tentang penggunaannya.

Panduan Mulai Cepat ini menggunakan skrip untuk menyederhanakan langkah-langkah konfigurasi agar Anda dapat melihat grafik dan log aktivitas dengan cepat. Untuk mempelajari cara mengonfigurasi dan men-deploy contoh API, pilih tutorial untuk salah satu framework API:

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Make sure that billing is enabled for your Google Cloud project.

Memulai Cloud Shell

  1. Di konsol Google Cloud, pastikan Anda berada di project yang ingin digunakan untuk API contoh.

  2. Buka Cloud Shell.

    Buka Cloud Shell

    Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah Konsol Google Cloud dan menampilkan perintah command-line. Perlu waktu beberapa detik hingga sesi dimulai.

    Sesi Cloud Shell

  3. Jika Anda menggunakan project yang sudah ada, pastikan Anda memiliki versi terbaru semua komponen gcloud yang diinstal:

    gcloud components update
    

Mendapatkan kode contoh

  1. Di Cloud Shell, masukkan perintah berikut untuk mendapatkan contoh API dan skrip:

    git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart
    
  2. Ubah ke direktori yang berisi kode contoh:

    cd endpoints-quickstart
    

Men-deploy konfigurasi Endpoint

Untuk memublikasikan REST API ke Endpoints, file konfigurasi OpenAPI yang menjelaskan API diperlukan. API contoh dilengkapi dengan file OpenAPI yang telah dikonfigurasi sebelumnya dan disebut openapi.yaml.

Endpoints menggunakan Pengelolaan Layanan, layanan infrastruktur Google Cloud untuk membuat dan mengelola API serta layanan. Untuk menggunakan Endpoints guna mengelola API, Anda men-deploy file konfigurasi OpenAPI API ke Pengelolaan Layanan.

Untuk men-deploy konfigurasi Endpoint:

  1. Di Cloud Shell, di direktori endpoints-quickstart, masukkan kode berikut:

    cd scripts
    
  2. Jalankan skrip berikut, yang disertakan dalam contoh:

    ./deploy_api.sh
    

Endpoint menggunakan kolom host dalam file konfigurasi OpenAPI untuk mengidentifikasi layanan. Skrip deploy_api.sh menetapkan ID project Google Cloud Anda sebagai bagian dari nama yang dikonfigurasi di kolom host. Saat menyiapkan file konfigurasi OpenAPI untuk layanan Anda sendiri, Anda harus melakukannya secara manual.

Kemudian, skrip akan men-deploy konfigurasi OpenAPI ke Pengelolaan Layanan menggunakan perintah: gcloud endpoints services deploy openapi.yaml

Saat membuat dan mengonfigurasi layanan, Pengelolaan Layanan akan menampilkan informasi ke konsol Google Cloud. Anda dapat mengabaikan peringatan tentang jalur di openapi.yaml yang tidak memerlukan kunci API dengan aman. Setelah berhasil selesai, Anda akan melihat baris yang mirip dengan baris berikut yang menampilkan ID konfigurasi layanan dan nama layanan:

    Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]

Mengaktifkan layanan yang diperlukan

Minimal, Endpoints mewajibkan layanan Google berikut diaktifkan:

Nama Judul
servicecontrol.googleapis.com Service Control API
servicemanagement.googleapis.com Service Management API

Pada umumnya, men-deploy konfigurasi Endpoint akan mengaktifkan layanan yang diperlukan ini.

Gunakan perintah berikut untuk mengonfirmasi bahwa layanan yang diperlukan telah diaktifkan:

gcloud services list

Jika Anda tidak melihat layanan yang diperlukan tercantum, aktifkan layanan tersebut:

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Aktifkan juga layanan Endpoints Anda:

gcloud services enable YOUR-PROJECT-ID.appspot.com

Untuk informasi selengkapnya tentang perintah gcloud, lihat layanan gcloud.

Men-deploy backend API

Sejauh ini, Anda telah men-deploy konfigurasi OpenAPI ke Pengelolaan Layanan, tetapi belum men-deploy kode untuk menayangkan backend API. Skrip deploy_app.sh yang disertakan dalam contoh membuat lingkungan fleksibel App Engine untuk menghosting backend API, lalu skrip men-deploy API ke App Engine.

Untuk men-deploy backend API:

  • Di Cloud Shell, di direktori endpoints-quickstart/scripts, jalankan skrip berikut:

    ./deploy_app.sh
    

Skrip menjalankan perintah berikut untuk membuat lingkungan fleksibel App Engine di region us-central: gcloud app create --region="$REGION"

Perlu waktu beberapa menit untuk membuat backend lingkungan fleksibel App Engine. Setelah aplikasi dibuat, outputnya adalah:

Success! The app is now created.

Selanjutnya, skrip akan menjalankan perintah gcloud app deploy untuk men-deploy API contoh ke App Engine.

Output-nya adalah:

Deploying ../app/app_template.yaml...You are about to deploy the following services:

Perlu waktu beberapa menit untuk men-deploy API ke App Engine. Saat API berhasil di-deploy ke App Engine, outputnya adalah:

Deployed service [default] to [https://example-project.appspot.com]

Mengirim permintaan ke API

  • Di Cloud Shell, setelah men-deploy API contoh, Anda dapat mengirim permintaan ke API tersebut dengan menjalankan skrip berikut:

    ./query_api.sh
    

Skrip ini akan menampilkan perintah curl yang digunakan untuk mengirim permintaan ke API, lalu menampilkan hasilnya. Output-nya adalah:

curl "https://example-project.appspot.com/airportName?iataCode=SFO"
San Francisco International Airport

API mengharapkan satu parameter kueri, iataCode, yang ditetapkan ke kode bandara IATA yang valid seperti SEA atau JFK. Contoh:

./query_api.sh JFK

Catatan: App Engine mungkin memerlukan waktu beberapa menit untuk berhasil merespons permintaan. Jika Anda mengirim permintaan dan mendapatkan HTTP 502, 503, atau beberapa error server lainnya, tunggu sebentar dan coba lagi permintaan tersebut.

Anda baru saja men-deploy dan menguji API di Endpoint.

Melacak aktivitas API

Dengan API yang di-deploy dengan Endpoints, Anda dapat memantau metrik operasi kritis di konsol Google Cloud, dan mendapatkan insight tentang pengguna dan penggunaan Anda dengan Cloud Logging.

  1. Di Cloud Shell, jalankan skrip pembuatan traffic untuk mengisi grafik dan log:

    ./generate_traffic.sh
    
  2. Di konsol Google Cloud, lihat grafik aktivitas untuk API Anda.

    Buka halaman Endpoints Services

    Mungkin perlu waktu beberapa saat agar permintaan ditampilkan dalam grafik. Sembari menunggu data ditampilkan:

    • Jika panel samping Izin tidak terbuka, klik +Izin. Panel Izin memungkinkan Anda mengontrol siapa yang memiliki akses ke API dan tingkat akses.

    • Klik Histori deployment. Tab ini menampilkan histori deployment API Anda, termasuk waktu deployment dan siapa yang men-deploy perubahan.

    • Klik Ringkasan. Anda melihat traffic yang masuk. Setelah skrip pembuatan traffic berjalan selama satu menit, Anda akan melihat tiga garis pada grafik Total latensi (persentil ke-50, ke-95, dan ke-98). Data ini memberikan perkiraan waktu respons.

  3. Scroll ke bawah ke tabel di bawah grafik, dan di bagian Links, klik View Logs untuk GET/airportName. Halaman Logs Explorer menampilkan log permintaan untuk API.

  4. Buka Cloud Shell.

    Buka Cloud Shell

  5. Untuk menghentikan skrip, masukkan Control+C.

Menambahkan kuota ke API

Endpoints memungkinkan Anda menetapkan kuota yang memungkinkan Anda mengontrol kecepatan aplikasi dapat memanggil API Anda. Anda dapat menggunakan kuota untuk melindungi API dari penggunaan yang berlebihan oleh satu klien.

  1. Di Cloud Shell, deploy konfigurasi Endpoints yang memiliki kuota.

    ./deploy_api.sh ../openapi_with_ratelimit.yaml
    

    Setelah Anda men-deploy konfigurasi Endpoint yang diperbarui, konfigurasi tersebut akan aktif dalam waktu satu menit.

  2. Di Konsol Google Cloud, buka halaman Kredensial.

    Buka halaman Kredensial

  3. Klik Create credentials, lalu klik API key. Kunci API baru akan ditampilkan di layar.

  4. Klik Salin .

  5. Di Cloud Shell, ketik hal berikut. Ganti YOUR_API_KEY dengan kunci API yang baru saja Anda buat.

    export API_KEY=YOUR_API_KEY
    
  6. Kirim permintaan ke API menggunakan kunci API yang baru saja Anda buat.

    ./query_api_with_key.sh $API_KEY
    

    Outputnya mirip dengan hal berikut ini:

    curl -H 'x-api-key: AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB' "https://example-project.appspot.com/airportName?iataCode=SFO"
    San Francisco International Airport
    
  7. API ini sekarang memiliki batas 5 permintaan per menit. Jalankan perintah berikut untuk mengirim traffic ke API dan memicu batas kuota.

    ./generate_traffic_with_key.sh $API_KEY
    
  8. Setelah menjalankan skrip selama 5-10 detik, masukkan Control+C untuk menghentikan skrip.

  9. Kirim permintaan lain yang diautentikasi ke API.

    ./query_api_with_key.sh $API_KEY
    

    Outputnya mirip dengan hal berikut ini:

    {
     "code": 8,
     "message": "Insufficient tokens for quota 'airport_requests' and limit 'limit-on-airport-requests' of service 'example-project.appspot.com' for consumer     'api_key:AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB'.",
     "details": [
      {
       "@type": "type.googleapis.com/google.rpc.DebugInfo",
       "stackEntries": [],
       "detail": "internal"
      }
     ]
    }
    

Jika Anda mendapatkan respons yang berbeda, coba jalankan skrip generate_traffic_with_key.sh lagi, lalu coba lagi.

Selamat! Anda telah berhasil membatasi kapasitas API. Anda juga dapat menetapkan batas yang bervariasi pada metode API yang berbeda, membuat beberapa jenis kuota, dan melacak konsumen mana yang menggunakan API mana.

Untuk mengetahui informasi selengkapnya, lihat Tentang kuota.

Membuat portal developer untuk API

Anda dapat menggunakan Cloud Endpoints Portal untuk membuat portal developer, situs yang dapat Anda gunakan untuk berinteraksi dengan API contoh. Untuk mempelajari lebih lanjut, lihat ringkasan Cloud Endpoints Portal.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

Agar tidak menimbulkan biaya, Anda dapat menghapus project Google Cloud untuk menghentikan penagihan semua resource yang digunakan dalam project tersebut.

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya