Publikasikan tabel data MaxCompute sebagai REST API yang dapat diakses publik menggunakan Cloud-native API Gateway dan DataWorks.
-
Tujuan contoh: Buat API untuk tabel
user_infodi MaxCompute. API ini memungkinkan pemanggil melakukan kueri informasi pengguna dengan menyediakanuser_id. -
Hasil akhir: API terotentikasi yang dapat diakses publik pada URL seperti
https://api.example.com/v1/user/info?user_id=10001.
-
Jika Anda menggunakan legacy API Gateway, lihat Hasilkan API dari sumber data (API Gateway).
-
Topik ini menggunakan MaxCompute sebagai contoh. Untuk daftar sumber data yang didukung, lihat Konfigurasi sumber data.
Cara kerja
Diagram berikut menunjukkan jalur permintaan dari pemanggil ke sumber data dan posisi masing-masing komponen.
Prasyarat
|
Kategori |
Persyaratan |
Deskripsi |
|
Akun dan izin |
Akun Alibaba Cloud dan izin |
Akun Anda harus memiliki izin untuk menggunakan Cloud-native API Gateway, DataWorks, dan MaxCompute. Anda harus memiliki peran Development untuk ruang kerja terkait di DataWorks. |
|
Aktivasi layanan |
Aktifkan layanan cloud yang diperlukan |
Aktifkan Cloud-native API Gateway. Catatan
|
|
Persiapan resource |
Resource group serverless |
Pada pengaturan jaringan resource group serverless, asosiasikan VPC dan vSwitch untuk Data Service. Penting
Perhatikan VPC dari resource group ini. Disarankan agar instans gateway dan resource group Data Service berbagi VPC yang sama untuk menyederhanakan konektivitas jaringan. |
|
Data uji MaxCompute |
Di proyek MaxCompute Anda, jalankan pernyataan DDL berikut untuk membuat tabel Jalankan pernyataan DML berikut untuk memasukkan data uji: |
|
|
Sumber data DataWorks |
Di bagian manajemen ruang kerja DataWorks, konfigurasikan sumber data yang mengarah ke proyek MaxCompute yang dijelaskan di atas. |
Langkah 1: Siapkan resource dasar di konsol Cloud-native API Gateway
Buat instans gateway, nama domain publik, dan resource REST API yang bersama-sama menjadi host layanan API Anda.
1. Buat instans gateway
Instans gateway adalah mesin yang memproses permintaan API.
-
Masuk ke konsol Cloud-native API Gateway. Di panel navigasi sebelah kiri, klik Instance.
-
Pilih wilayah dari bilah navigasi atas.
PentingWilayah harus sama dengan wilayah ruang kerja DataWorks Anda.
-
Di halaman Instance, klik Create Instance.
-
Di halaman pembelian, konfigurasikan parameter berikut:
-
Commodity Type: Pay-as-you-go dan Subscription didukung. Untuk tujuan pengujian, Anda dapat memilih pay-as-you-go.
-
Gateway Name: Masukkan nama kustom yang mudah dikenali, seperti
dataservice-prod. -
Gateway Specification: Pilih single-node untuk pengujian atau multi-node untuk kepatuhan SLA produksi.
-
Network Access Type: Pilih Public atau Public + Private untuk mengaktifkan akses Internet. Penggunaan akses publik dikenai biaya traffic.
-
VPC: Pilih VPC.
PentingKami sangat menyarankan menggunakan VPC yang sama dengan resource group serverless pada prasyarat. Jika VPC berbeda, Anda harus membuat layanan backend secara manual nanti.
-
Zone Selection: Anda dapat memilih Auto Assign atau menetapkan instans secara manual di berbagai zona dan vSwitch.
-
Resource Group: Pilih resource group berdasarkan kebijakan manajemen resource Anda.
-
-
Klik Buy Now dan selesaikan pembayaran. Pembuatan instans memerlukan waktu sekitar 1 hingga 5 menit. Instans siap digunakan ketika statusnya berubah menjadi Running.
Buat instans gateway.
2. Tambahkan nama domain
Jika Anda hanya perlu mengakses API dalam VPC, Anda tidak perlu mengajukan nama domain.
Nama domain berfungsi sebagai titik masuk akses publik untuk API.
-
Di panel navigasi sebelah kiri konsol Cloud-native API Gateway, klik Domain Name. Pastikan wilayah di bagian atas sesuai dengan instans gateway.
-
Klik Add Domain Name dan konfigurasikan informasi berikut:
-
Domain Name: Masukkan nama domain Anda sendiri, seperti
api.example.com. Nama domain independen yang digunakan di wilayah Tiongkok harus menyelesaikan Pendaftaran ICP. -
Protocol: Pilih HTTPS untuk transmisi data aman. Anda juga harus memilih Sertifikat SSL yang sudah ada.
-
Other Settings: Aktifkan Force HTTPS dan Enable HTTP/2, serta pilih TLS Version sesuai kebutuhan keamanan Anda.
-
Tambahkan nama domain.
3. Buat REST API
REST API mengelompokkan API di bawah Base Path yang sama. Workflow DataWorks diikat ke REST API.
Dibandingkan dengan legacy API Gateway, REST API setara dengan API group.
-
Di panel navigasi sebelah kiri konsol Cloud-native API Gateway, klik API. Pastikan wilayah di bagian atas sudah benar.
-
Klik Create API. Di halaman Create API, pilih Create di bawah kartu REST API.
-
Di panel Create REST API, konfigurasikan pengaturan berikut:
-
API Name: Beri nama koleksi API Anda. Nama harus unik secara global dalam wilayah saat ini, seperti
dataservice-user-api. -
Base Path: base path API, yang merupakan bagian dari URL. Misalnya, atur ke
/v1. Jalur akses akhir akan menjadiProtocol://DomainName/BasePath/APIPath. -
Version Management: Aktifkan sesuai kebutuhan.
-
Buat REST API.
Langkah 2: Buat dan konfigurasikan API di DataWorks
Definisikan logika API, hubungkan ke sumber data, dan konfigurasikan parameter di DataWorks.
1. Buat workflow
Workflow mengatur API terkait dan mengaitkannya dengan REST API di API Gateway.
-
Buka konsol DataWorks. Di panel navigasi sebelah kiri, buka Data Services > Service Development.
-
Klik ikon buat di pojok kiri atas dan pilih Create Workflow.
-
Di dialog Create Workflow, konfigurasikan pengaturan berikut:
-
Workflow Name: Masukkan nama kustom yang unik dalam ruang kerja, seperti
User Query Workflow. Nama harus terdiri dari 4 hingga 50 karakter. -
Gateway Type: Pilih Cloud-native API Gateway.
-
REST API: Dari daftar drop-down, pilih REST API yang Anda buat di Langkah 1 (misalnya,
dataservice-user-api). Jika tidak muncul, klik tombol Refresh.PentingSetelah workflow dikaitkan dengan REST API, pengikatan tersebut tidak dapat diubah. Lanjutkan dengan hati-hati.
-
2. Hasilkan API dalam mode wizard
-
Di halaman Service Development, arahkan kursor ke ikon buat di pojok kiri atas dan klik Create API > Generate API.
-
Di dialog Generate API, pilih Wizard Mode dan konfigurasikan informasi dasar API:
-
Location: Pilih Workflow yang dibuat pada langkah sebelumnya (
User Query Workflow). -
API Name: Masukkan nama untuk API spesifik, seperti
Query User by User ID. -
APIPath: Jalur spesifik API, seperti
/user/info. Ini digabungkan denganBase Pathuntuk membentuk jalur URL lengkap. API Path harus dimulai dengan/dan tidak boleh melebihi 200 karakter. -
Request Method: Pilih GET atau POST. Saat GET dipilih, parameter permintaan hanya dapat ditempatkan di string QUERY.
-
Response Type: Pilih JSON.
-
-
Klik Create untuk membuka halaman pengeditan API grafis.
CatatanUntuk membuat API dalam mode skrip, lihat Buat API dalam mode skrip.
3. Konfigurasi API
Di halaman pengeditan API, ikuti alur Select Table > Select Parameters > Configure Parameters untuk mendefinisikan API Anda.
-
Pilih tabel (sumber data dan tabel)
Di bagian Select Table di sisi kiri halaman, konfigurasikan pengaturan berikut:
-
Data Source Type: Pilih MaxCompute(ODPS).
-
Data Source Name: Pilih sumber data yang Anda konfigurasikan pada prasyarat.
-
Data Table Name: Pilih tabel
user_info. -
Jika Anda menggunakan sumber data MaxCompute, Anda harus mengonfigurasi Acceleration Method untuk meningkatkan performa.
-
-
Pilih parameter (permintaan dan respons)
Setelah memilih tabel, bagian Select Parameters di bawahnya mencantumkan semua kolom tabel.
-
Konfigurasi parameter permintaan: Pilih kolom
user_iddan klik Set as Req Param. -
Konfigurasi parameter respons: Pilih kolom
user_iddanuser_namelalu klik Set as Resp Param.
-
-
Konfigurasi detail parameter permintaan: Di tab Request Parameters di sisi kanan halaman, atur Sample Value untuk parameter
user_id(misalnya,10001). Hal ini membantu pengujian selanjutnya.Praktik terbaik: Tetapkan kolom yang diindeks sebagai parameter permintaan untuk mengoptimalkan performa kueri.
-
Konfigurasi resource group layanan dan lingkungan
Di bagian Service Resource Group di sisi kanan halaman, konfigurasikan pengaturan berikut:
-
Resource Group Type: Anda harus memilih Exclusive Resource Group for Data Service dan memilih resource group yang diasosiasikan dengan ruang kerja saat ini dari daftar drop-down.
-
Environment Configuration:
-
Timeout: Waktu maksimum Cloud-native API Gateway menunggu respons dari DataWorks, seperti
3detik. -
Maximum Number of Data Records for a Single Request: Jumlah maksimum catatan yang dikembalikan oleh satu panggilan API, seperti
2000.
-
-
-
Mengonfigurasi otentikasi keamanan
Di bagian otentikasi keamanan di sisi kanan, aktifkan otentikasi konsumen dan pilih jenis otentikasi.
CatatanDataWorks secara otomatis membuat konsumen dengan nama yang sama dengan ruang kerja di Cloud-native API Gateway. Anda tidak perlu membuatnya secara manual.
Metode autentikasi
Deskripsi
Skenario penerapan
API Key
Klien menyertakan kredensial dalam setiap permintaan, dan gateway memverifikasi validitas serta izinnya. Cocok untuk operasi non-sensitif. Kurang aman dibanding JWT dan HMAC — lindungi kredensial dengan hati-hati.
Cocok untuk skenario integrasi ringan dan cepat dengan persyaratan keamanan moderat.
JWT
Token Web JSON (JWT) menggunakan tanda tangan HMAC, RSA, atau ECDSA untuk mentransmisikan klaim yang dapat diverifikasi antara klien dan server, memungkinkan verifikasi identitas dan kontrol akses di gateway.
Cocok untuk sistem terdistribusi dan skenario Single Sign-On (SSO).
HMAC
Klien menandatangani konten permintaan dengan kunci penandatanganan dan mengirimkan tanda tangan tersebut bersama permintaan untuk verifikasi server.
Cocok untuk skenario dengan persyaratan tinggi terhadap integritas data dan pencegahan perubahan data.
-
Simpan API: Setelah menyelesaikan semua konfigurasi, klik ikon Save di bilah alat atas.
Langkah 3: Uji, kirim, dan terapkan API
1. Uji API
API harus lulus pengujian sebelum dapat dikirim.
-
Di halaman pengeditan API, klik tombol Test APIs di bilah alat.
-
Di dialog Test APIs, masukkan nilai sampel yang ada untuk parameter permintaan
user_id(misalnya,10001), lalu klik Start Test. -
Lihat Response Details di sisi kanan untuk memverifikasi apakah data sesuai ekspektasi. Response Duration dapat digunakan untuk mengevaluasi performa.
-
Jika pengujian gagal, periksa konfigurasi sumber data, tabel, parameter, atau resource group berdasarkan pesan error.
2. Kirim API
Setelah pengujian berhasil, kirim API untuk menghasilkan versi yang dapat diterapkan.
-
Di halaman pengeditan API, klik tombol Submission di bilah alat.
-
Setelah pengiriman, sistem menghasilkan versi API, yang terlihat di tab Version Management di sisi kanan.
-
Jika proses persetujuan dikonfigurasi untuk ruang kerja Anda, status versi API akan menjadi To Be Requested. Anda perlu mengklik Request to Publish untuk mengajukan permintaan. Setelah disetujui, status berubah menjadi Can Be Published.
Jika tidak ada proses persetujuan yang dikonfigurasi, status versi biasanya langsung menjadi Can Be Published.
3. Terapkan API ke Cloud-native API Gateway
Terapkan API ke lingkungan produksi.
-
Di tab Version di sisi kanan halaman pengeditan API, temukan versi dengan status Can Be Published dan klik Publish di kolom Aksi.
-
Di dialog Publish API to Cloud-native API Gateway, konfigurasikan tiga pengaturan wajib berikut:
-
Domain Name: Pilih nama domain yang Anda tambahkan di Langkah 1.
PentingSemua API di bawah REST API yang sama berbagi nama domain yang sama. Mengubah nama domain saat penerapan akan memengaruhi nama domain yang digunakan untuk memanggil semua API di bawah REST API yang sama.
-
Gateway Instance: Pilih instans gateway yang Anda buat di Langkah 1.
-
Backend Service:
-
Jika VPC instans gateway sama dengan VPC resource group DataWorks, pilih Default.
-
Jika VPC berbeda, Anda harus memilih layanan backend yang dibuat di Cloud-native API Gateway.
Buat layanan backend
-
-
Setelah penerapan, API aktif dan dapat dipanggil melalui URL akses.
Langkah 4: Panggil dan verifikasi API
Berdasarkan metode autentikasi yang dikonfigurasi di Langkah 2, gunakan kredensial untuk mengakses API.
-
Di tab Version API yang telah diterapkan, temukan versi yang baru saja Anda terapkan, lalu klik Service Management di sisi kanan untuk membuka halaman manajemen API dan melihat detail API.
-
Di halaman manajemen API, klik alamat di bawah API Name/Path untuk melihat detail API.
-
Buat dan eksekusi panggilan
-
Contoh URL: Salin URL akses dari detail API.
-
Informasi autentikasi: Buka Service Management > Call APIs > Cloud-native API Gateway untuk melihat detail autentikasi untuk berbagai metode.
-
Metode pemanggilan: Gunakan
curlatau klien HTTP lain, dan sertakanAppKeydanAppSecretdi header permintaan untuk melakukan panggilan.Panggil API.
Contoh panggilan curl:
Otentikasi API Key
# Ganti api.example.com dengan nama domain aktual Anda curl "https://api.example.com/v1/user/info?user_id=10001" \ -X GET \ -H "Content-Type: application/json; charset=utf-8" \ -H "Authorization: Bearer <API_KEY>"Otentikasi HMAC
Untuk proses pemanggilan lengkap, lihat Gunakan otentikasi HMAC untuk memanggil API.
# Ganti api.example.com dengan nama domain aktual Anda curl "https://api.example.com/v1/user/info?user_id=10001" \ -X GET \ -H "x-ca-key: Access Key" \ -H "x-ca-signature: <Base64EncodedSignature>" \ -H "x-ca-signature-method: HmacSHA256" \ -H "Date: Wed, 01 Jan 2025 00:00:00 GMT" \ -H "Accept: application/json" \ -
-
Lihat respons yang diharapkan: Jika semuanya berfungsi dengan baik, Anda akan menerima respons JSON seperti berikut:
{ "data": { "user_id": 10001, "user_name": "Alice" }, "success": true }
Dukungan multi-versi untuk API
Cloud-native API Gateway mendukung penerapan API yang sama ke beberapa instans gateway, memungkinkan Anda menargetkan lingkungan berbeda (pengujian vs. produksi) atau melayani kebutuhan bisnis berbeda.
Terapkan API ke beberapa instans gateway
Di panel Version, klik Publish untuk versi dengan status Can Be Published. Di dialog Publish API to Cloud-native API Gateway, pilih Gateway Instance yang berbeda untuk menerapkan API ke instans gateway yang sesuai. Anda dapat mengulangi langkah ini untuk menerapkan API yang sama di beberapa instans.
Dalam instans gateway yang sama, penerapan versi baru secara otomatis membatalkan penerapan versi sebelumnya. Versi di instans gateway berbeda bersifat independen dan dapat berada dalam status deployed secara bersamaan.
Tampilan multi-versi di manajemen layanan
Setelah API diterapkan ke beberapa instans gateway, tampilan di halaman Service Management berubah sebagai berikut.
Daftar manajemen API
Di tab Published APIs pada Service Management, ID API yang sama muncul dalam beberapa catatan — satu untuk setiap instans gateway yang diterapkan. Kolom Gateway Instance menampilkan nama instans dan ID gateway untuk setiap catatan.
Halaman detail API
Klik nama API untuk membuka halaman detailnya. Pemilih Gateway Instance di bagian atas memungkinkan Anda beralih antar instans untuk melihat URL akses, parameter permintaan, dan parameter respons masing-masing penerapan.