Men-deploy API yang dikelola oleh Cloud Endpoints

QuickStart ini akan memandu Anda dalam men-deploy contoh API, yang dikelola Endpoint. 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 Endpoint.
  • 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.

QuickStart ini menggunakan skrip untuk menyederhanakan langkah-langkah konfigurasi agar Anda dapat melihat cara kerja 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. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

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

    Buka pemilih project

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

Memulai Cloud Shell

  1. Di konsol Google Cloud, pastikan Anda berada dalam 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 untuk melakukan inisialisasi sesi.

    Sesi Cloud Shell

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

    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 Endpoint, file konfigurasi OpenAPI yang menjelaskan API diperlukan. Contoh API dilengkapi dengan file OpenAPI yang telah dikonfigurasi sebelumnya, yaitu openapi.yaml.

Endpoint menggunakan Pengelolaan Layanan, yakni layanan infrastruktur Google Cloud untuk membuat serta mengelola API dan layanan. Agar dapat menggunakan Endpoint untuk mengelola API, 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 sendiri, Anda harus melakukannya secara manual.

Skrip tersebut kemudian men-deploy konfigurasi OpenAPI ke Pengelolaan Layanan menggunakan perintah: gcloud endpoints services deploy openapi.yaml

Saat membuat dan mengonfigurasi layanan, Pengelolaan Layanan menghasilkan informasi ke konsol Google Cloud. Anda dapat mengabaikan peringatan tentang jalur di openapi.yaml yang tidak memerlukan kunci API dengan aman. Setelah berhasil, Anda akan melihat baris yang serupa dengan 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

Setidaknya, Endpoint mengharuskan layanan Google berikut diaktifkan:

Nama Judul
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API
endpoints.googleapis.com Endpoint Google Cloud

Dalam sebagian besar kasus, 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
gcloud services enable endpoints.googleapis.com

Aktifkan juga layanan Endpoint Anda:

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

Untuk mengetahui 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 menyalurkan backend API. Skrip deploy_app.sh yang disertakan dalam contoh akan 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, pada direktori endpoints-quickstart/scripts, jalankan skrip berikut:

    ./deploy_app.sh
    

Skrip ini 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, output-nya adalah:

Success! The app is now created.

Selanjutnya, skrip akan menjalankan perintah gcloud app deploy untuk men-deploy contoh API 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. Jika API berhasil di-deploy ke App Engine, output-nya adalah:

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

Mengirim permintaan ke API

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

    ./query_api.sh
    

Skrip ini menggemakan 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 disetel ke kode bandara IATA yang valid seperti SEA atau JFK. Contoh:

./query_api.sh JFK

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

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

Aktivitas API pelacakan

Dengan API yang di-deploy menggunakan Endpoint, Anda dapat memantau metrik operasi penting di Konsol Google Cloud, serta 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 Layanan Endpoint

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

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

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

    • Klik Ringkasan. Anda melihat lalu lintas yang masuk. Setelah skrip pembuatan traffic berjalan selama satu menit, Anda akan melihat tiga baris 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

Dengan Endpoint, Anda dapat menetapkan kuota sehingga Anda dapat mengontrol frekuensi aplikasi memanggil API Anda. Anda dapat menggunakan kuota untuk melindungi API dari penggunaan berlebihan oleh satu klien.

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

    ./deploy_api.sh ../openapi_with_ratelimit.yaml
    

    Setelah Anda men-deploy konfigurasi Endpoint yang diupdate, 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 Copy .

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

    export API_KEY=YOUR_API_KEY
    
  6. Mengirimkan permintaan kepada 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 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. Mengirim permintaan terautentikasi lainnya 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 berbagai metode API, membuat beberapa jenis kuota, dan melacak konsumen mana yang menggunakan API tertentu.

Untuk mengetahui informasi lebih lanjut, lihat Tentang kuota.

Membuat portal developer untuk API

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

Pembersihan

Agar akun Google Cloud Anda tidak dikenakan biaya 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