Men-deploy API yang dikelola oleh Cloud Endpoints
Panduan Memulai ini akan memandu Anda men-deploy contoh API yang dikelola oleh Endpoints. Kode contoh mencakup:
- REST API yang dapat Anda kueri 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 contoh API, Anda dapat melihat grafik aktivitas Endpoints dan log Google Cloud Observability di konsolGoogle Cloud . Alat ini memungkinkan Anda memantau API dan mendapatkan insight tentang penggunaannya.
Panduan Memulai ini menggunakan skrip untuk menyederhanakan langkah-langkah konfigurasi agar Anda dapat dengan cepat melihat grafik dan log aktivitas. Untuk mempelajari cara mengonfigurasi dan men-deploy contoh API, pilih tutorial untuk salah satu framework API:
Sebelum memulai
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Memulai Cloud Shell
Di konsol Google Cloud , pastikan Anda berada di project yang ingin Anda gunakan untuk API contoh.
Buka Cloud Shell.
Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah Google Cloud konsol dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi dimulai.
Jika Anda menggunakan project yang sudah ada, pastikan Anda memiliki versi terbaru dari semua komponen
gcloud
yang diinstal:gcloud components update
Mendapatkan kode contoh
Di Cloud Shell, masukkan perintah berikut untuk mendapatkan contoh API dan skrip:
git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart
Ubah ke direktori yang berisi kode contoh:
cd endpoints-quickstart
Men-deploy konfigurasi Endpoint
Untuk memublikasikan REST API ke Endpoints, diperlukan file konfigurasi OpenAPI yang menjelaskan API. Contoh API dilengkapi dengan file OpenAPI yang telah dikonfigurasi sebelumnya bernama openapi.yaml
.
Endpoints menggunakan Service Management, 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 Service Management.
Untuk men-deploy konfigurasi Endpoints:
Di Cloud Shell, di direktori
endpoints-quickstart
, masukkan berikut ini:cd scripts
Jalankan skrip berikut, yang disertakan dalam contoh:
./deploy_api.sh
Endpoints 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 men-deploy konfigurasi OpenAPI ke Service Management
menggunakan perintah: gcloud endpoints services deploy openapi.yaml
Saat membuat dan mengonfigurasi layanan, Service Management 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
diselesaikan, Anda akan melihat baris yang mirip 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
Minimal, Endpoints memerlukan layanan Google berikut diaktifkan:
Nama | Judul |
---|---|
servicecontrol.googleapis.com |
Service Control API |
servicemanagement.googleapis.com |
Service Management API |
Dalam sebagian besar kasus, men-deploy konfigurasi Endpoints akan mengaktifkan layanan yang diperlukan ini.
Gunakan perintah berikut untuk mengonfirmasi bahwa layanan yang diperlukan sudah 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 mengetahui informasi selengkapnya tentang perintah gcloud
, lihat
layanan gcloud
.
Men-deploy backend API
Sejauh ini Anda telah men-deploy konfigurasi OpenAPI ke Service Management, tetapi Anda 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"
Pembuatan backend lingkungan fleksibel App Engine memerlukan waktu beberapa menit. Setelah aplikasi dibuat, outputnya adalah:
Success! The app is now created.
Selanjutnya, skrip menjalankan perintah gcloud app deploy
untuk
men-deploy contoh API ke App Engine.
Outputnya 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, outputnya 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 kepadanya dengan menjalankan skrip berikut:
./query_api.sh
Skrip mengulang perintah curl
yang digunakannya untuk mengirim permintaan ke API,
lalu menampilkan hasilnya. Outputnya adalah:
curl "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport
API ini 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 merespons permintaan dengan berhasil. Jika Anda mengirim permintaan dan mendapatkan HTTP 502, 503, atau error server lainnya, tunggu sebentar dan coba lagi permintaan tersebut.
Anda baru saja men-deploy dan menguji API di Endpoints.
Melacak aktivitas API
Dengan API yang di-deploy dengan Endpoints, Anda dapat memantau metrik operasi penting di konsol Google Cloud , dan mendapatkan insight tentang pengguna dan penggunaan Anda dengan Cloud Logging.
Di Cloud Shell, jalankan skrip pembuatan traffic untuk mengisi grafik dan log:
./generate_traffic.sh
Di konsol Google Cloud , lihat grafik aktivitas untuk API Anda.
Buka halaman Endpoints Services
Mungkin perlu waktu beberapa saat agar permintaan ditampilkan dalam grafik. Sambil menunggu data ditampilkan:
Jika panel samping Izin tidak terbuka, klik +Izin. Panel Izin memungkinkan Anda mengontrol siapa yang memiliki akses ke API Anda dan level aksesnya.
Klik Histori deployment. Tab ini menampilkan histori penerapan API Anda, termasuk waktu penerapan dan siapa yang menerapkan perubahan.
Klik Ringkasan. Anda melihat traffic 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.
Scroll ke bawah ke tabel di bawah grafik, lalu di bagian Links, klik View Logs untuk GET/airportName. Halaman Logs Explorer menampilkan log permintaan untuk API.
Buka Cloud Shell.
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 Anda dari penggunaan berlebihan oleh satu klien.
Di Cloud Shell, deploy konfigurasi Endpoints yang memiliki kuota.
./deploy_api.sh ../openapi_with_ratelimit.yaml
Setelah Anda men-deploy konfigurasi Endpoints yang diperbarui, konfigurasi tersebut akan aktif dalam waktu satu menit.
Di konsol Google Cloud , buka halaman Credentials.
Klik Create credentials, lalu klik API key. Kunci API baru akan ditampilkan di layar.
Klik Salin file_copy.
Di Cloud Shell, ketik perintah berikut. Ganti
YOUR_API_KEY
dengan kunci API yang baru saja Anda buat.export API_KEY=YOUR_API_KEY
Kirim permintaan 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
API kini 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
Setelah menjalankan skrip selama 5-10 detik, masukkan
Control+C
untuk menghentikan skrip.Kirim permintaan terautentikasi lain 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 frekuensi panggilan API. Anda juga dapat menetapkan batas yang bervariasi pada berbagai metode API, membuat beberapa jenis kuota, dan melacak konsumen mana yang menggunakan API mana.
Untuk mengetahui informasi selengkapnya, lihat Tentang kuota.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Agar tidak menimbulkan biaya, Anda dapat menghapus Google Cloud project untuk menghentikan penagihan semua resource yang digunakan dalam project tersebut.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Langkah berikutnya
Untuk ringkasan Endpoint:
Untuk mempelajari berbagai framework API yang didukung Endpoints:
Untuk mempelajari cara mengonfigurasi dan men-deploy API contoh, pilih tutorial untuk salah satu framework API: