Panduan memulai API Gateway dan App Engine
Halaman ini menunjukkan cara menyiapkan Gateway API untuk mengelola dan mengamankan layanan backend App Engine.
{i>Task List <i}(Daftar Tugas)
Gunakan daftar tugas berikut saat Anda mengerjakan tutorial. Semua tugas diperlukan untuk men-deploy Gateway API untuk layanan backend App Engine Anda.
- Membuat atau memilih project Google Cloud.
- Jika Anda belum men-deploy App Engine Anda sendiri, deploy aplikasi contoh. Lihat Sebelum memulai.
- Aktifkan layanan Gateway API yang diperlukan.
- Konfigurasikan IAP untuk mengamankan aplikasi Anda. Lihat Mengonfigurasi IAP.
- Buat spesifikasi OpenAPI yang mendeskripsikan API Anda, dan konfigurasikan rute ke App Engine Anda. Lihat Membuat konfigurasi API.
- Deploy Gateway API menggunakan konfigurasi API Anda. Lihat Men-deploy Gateway API.
- Lacak aktivitas ke aplikasi Anda. Lihat Aktivitas Tracking API.
- Hindari menimbulkan tagihan ke akun Google Cloud Anda. Lihat Pembersihan.
Sebelum memulai
Di konsol Google Cloud, buka halaman Dashboard dan pilih atau buat project Google Cloud.
Pastikan penagihan diaktifkan untuk project Anda.
Catat ID project yang ingin Anda gunakan untuk tutorial ini. Di bagian lain halaman ini, project ID ini disebut sebagai PROJECT_ID.
Mendownload dan menginstal Google Cloud CLI.
Update komponen
gcloud
:gcloud components update
Tetapkan project default. Ganti PROJECT_ID dengan ID project Google Cloud Anda
gcloud config set project PROJECT_ID
Jika Anda belum men-deploy aplikasi App Engine sendiri, ikuti langkah-langkah dalam Panduan Memulai App Engine untuk bahasa Anda agar dapat menggunakan Google Cloud CLI untuk memilih atau membuat project Google Cloud dan men-deploy aplikasi contoh. Catat URL aplikasi, serta region dan project ID tempat aplikasi Anda di-deploy.
Mengaktifkan layanan yang diperlukan
Gateway API mengharuskan Anda mengaktifkan layanan Google berikut:
Nama | Judul |
---|---|
apigateway.googleapis.com |
API Gateway API |
servicemanagement.googleapis.com |
Service Management API |
servicecontrol.googleapis.com |
Service Control API |
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 apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
Untuk mengetahui informasi selengkapnya tentang layanan gcloud
, lihat
layanan gcloud
.
Mengonfigurasi IAP untuk mengamankan aplikasi Anda
Untuk mengamankan aplikasi App Engine, Anda harus menggunakan Identity Aware Proxy (IAP) untuk memastikan bahwa permintaan diautentikasi. Proses ini mencakup penetapan anggota yang akan diberi peran IAP-secured Web App User
yang diperlukan untuk project tersebut.
Ikuti langkah-langkah untuk Mengaktifkan IAP, dan pastikan Anda dapat login ke aplikasi.
Membuat konfigurasi API
Sebelum Gateway API dapat digunakan untuk mengelola traffic ke backend App Engine yang di-deploy, Gateway API memerlukan konfigurasi API.
Anda dapat membuat konfigurasi API menggunakan spesifikasi OpenAPI yang berisi anotasi khusus untuk menentukan perilaku API Gateway yang diinginkan. Anda harus menambahkan kolom khusus Google yang berisi URL untuk setiap aplikasi App Engine, sehingga Gateway API memiliki informasi yang diperlukan untuk memanggil aplikasi.
- Buat file teks bernama
openapi2-appengine.yaml
. (Untuk memudahkan, halaman ini mengacu pada spesifikasi OpenAPI berdasarkan nama file tersebut, tetapi Anda dapat menamainya dengan nama lain jika mau.) - Cantumkan setiap aplikasi Anda di bagian
paths
pada fileopenapi2-appengine.yaml
, seperti yang ditunjukkan di bawah ini:# openapi2-appengine.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with an App Engine backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: APP_URL jwt_audience: IAP_CLIENT_ID responses: '200': description: A successful response schema: type: string
- Di kolom
title
, ganti API_ID dengan nama API Anda dan ganti optional-string dengan deskripsi singkat pilihan Anda. Jika API Anda belum ada, perintah untuk membuat API Config juga akan membuat API dengan nama yang Anda tentukan. Nilai kolomtitle
digunakan saat membuat kunci API yang memberikan akses ke API ini. Lihat persyaratan ID API untuk panduan penamaan API. - Pada kolom
address
di bagianx-google-backend
, ganti APP_URL dengan URL sebenarnya dari layanan App Engine Anda (jalur lengkap dari API yang dipanggil). Contohnya,https://myapp.an.r.appspot.com/hello
Ganti IAP_CLIENT_ID dengan Client ID OAuth yang Anda buat saat menyiapkan IAP.
- Masukkan perintah berikut, dengan kondisi:
- CONFIG_ID menentukan nama konfigurasi API Anda.
- API_ID menentukan nama API Anda. Jika API belum ada, perintah ini akan membuatnya.
- PROJECT_ID menentukan nama project Google Cloud Anda.
- SERVICE_ACCOUNT_EMAIL menentukan akun layanan yang digunakan untuk menandatangani token bagi backend dengan autentikasi yang dikonfigurasi.
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=openapi2-appengine.yaml \ --project=PROJECT_ID --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Operasi ini mungkin memerlukan waktu beberapa menit hingga konfigurasi API diterapkan ke sistem downstream. Pembuatan konfigurasi API yang kompleks dapat memerlukan waktu hingga sepuluh menit agar berhasil diselesaikan.
- Setelah konfigurasi API dibuat, Anda dapat melihat detailnya dengan menjalankan perintah ini:
gcloud api-gateway api-configs describe CONFIG_ID \ --api=API_ID --project=PROJECT_ID
Men-deploy Gateway API
Sekarang Anda dapat men-deploy API di Gateway API. Men-deploy API di Gateway API juga menentukan URL eksternal yang dapat digunakan klien API untuk mengakses API Anda.
Jalankan perintah berikut untuk men-deploy konfigurasi API yang baru saja Anda buat ke Gateway API:
gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION --project=PROJECT_ID
dengan:
- GATEWAY_ID menentukan nama gateway.
- API_ID menentukan nama API Gateway API yang terkait dengan gateway ini.
- CONFIG_ID menentukan nama konfigurasi API yang di-deploy ke gateway.
GCP_REGION adalah region Google Cloud untuk gateway yang di-deploy.
PROJECT_ID menentukan nama project Google Cloud Anda.
Setelah berhasil diselesaikan, Anda dapat menggunakan perintah berikut untuk melihat detail tentang gateway:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Catat nilai properti defaultHostname
dalam output perintah ini. Ini adalah bagian nama host URL gateway yang Anda gunakan untuk menguji deployment pada langkah berikutnya.
Menguji deployment API Anda
Sekarang Anda dapat mengirim permintaan ke API menggunakan URL yang dihasilkan setelah deployment gateway.
Masukkan perintah curl
berikut, dengan kode berikut:
- DEFAULT_HOSTNAME menentukan bagian nama host URL gateway yang di-deploy. Nilai
defaultHostname
dapat ditemukan dalam output perintahgateways describe
yang ditunjukkan di atas. hello
adalah jalur yang ditetapkan dalam konfigurasi API Anda.
curl https://DEFAULT_HOSTNAME/hello
Contoh:
curl https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Anda akan melihat output berikut:
My-AppEngineApp: Access denied for user gateway-1a2b3c@04d5e6f35FgdsT73dFrty-tp.iam.gserviceaccount.com requesting https://my-project.appspot.com/helloGET. If you should have access, contact myldap@google.com and include the full text of this message.
Berhasil! Gateway API Anda mengelola akses ke layanan backend App Engine. Untuk memberikan akses ke aplikasi App Engine, Anda harus mengonfigurasi akun layanan dengan izin yang benar untuk Gateway API.
Melacak aktivitas API
Lihat grafik aktivitas untuk API Anda di halaman Gateway API di Konsol Google Cloud. Klik API Anda untuk melihat grafik aktivitasnya di halaman Overview. Mungkin perlu waktu beberapa saat agar permintaan ditampilkan dalam grafik.
Lihat log permintaan untuk API Anda di halaman Logs Explorer. Link ke halaman Logs Explorer dapat ditemukan di halaman API Gateway pada Konsol Google Cloud.
Setelah berada di halaman Gateway API:- Pilih API untuk dilihat.
- Klik tab Details.
- Klik link di bagian Logs.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam panduan memulai ini, Anda dapat:
Atau, Anda juga dapat menghapus project Google Cloud yang digunakan untuk tutorial ini.