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
- 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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
Memulai Cloud Shell
Di konsol Google Cloud, pastikan Anda berada dalam project yang ingin digunakan untuk API contoh.
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.
Jika menggunakan project yang sudah ada, pastikan Anda memiliki versi terbaru dari semua komponen
gcloud
yang terinstal: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 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:
Di Cloud Shell, di direktori
endpoints-quickstart
, masukkan kode berikut:cd scripts
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.comgcloud 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.
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.
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.
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.
Buka Cloud Shell.
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.
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.
Di Konsol Google Cloud, buka halaman Kredensial.
Klik Create credentials, lalu klik API key. Kunci API baru akan ditampilkan di layar.
Klik Copy file_copy.
Di Cloud Shell, ketik kode berikut. Ganti
YOUR_API_KEY
dengan kunci API yang baru saja Anda buat.export API_KEY=YOUR_API_KEY
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
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
Setelah menjalankan skrip selama 5–10 detik, masukkan
Control+C
untuk menghentikan skrip.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.
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
Untuk mengetahui ringkasan Endpoint:
Untuk mempelajari berbagai framework API yang didukung Endpoint:
Untuk mempelajari cara mengonfigurasi dan men-deploy contoh API, pilih tutorial untuk salah satu framework API: