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
- 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 di 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 hingga sesi dimulai.
Jika Anda menggunakan project yang sudah ada, pastikan Anda memiliki versi terbaru 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, 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:
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 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.
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. 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.
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
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.
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.
Di Konsol Google Cloud, buka halaman Kredensial.
Klik Create credentials, lalu klik API key. Kunci API baru akan ditampilkan di layar.
Klik Salin file_copy.
Di Cloud Shell, ketik hal berikut. Ganti
YOUR_API_KEY
dengan kunci API yang baru saja Anda buat.export API_KEY=YOUR_API_KEY
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
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
Setelah menjalankan skrip selama 5-10 detik, masukkan
Control+C
untuk menghentikan skrip.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.
- 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 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: