1. Pendahuluan
API penjadwalan merupakan komponen inti dalam arsitektur high availability (HA) HTTPDNS. API ini secara cerdas mengalokasikan node layanan resolusi terbaik berdasarkan lokasi dan kondisi jaringan klien. Gunakan API penjadwalan untuk memperoleh daftar alamat IP layanan yang sehat dan berada di dekat Anda guna mendukung resolusi nama domain berkinerja tinggi.
Topik ini menjelaskan cara menggunakan API penjadwalan, termasuk formatnya, parameter, mekanisme keamanan, serta penanganan respons. Bagian utamanya meliputi:
Format API: Menjelaskan format dasar API penjadwalan dan cara menyusun URL-nya.
Deskripsi parameter: Menjabarkan parameter API penjadwalan, termasuk parameter yang diperlukan dan opsional.
Penandatanganan permintaan: Menjelaskan mekanisme penandatanganan permintaan untuk meningkatkan keamanan permintaan penjadwalan.
Deskripsi respons API: Menjelaskan format respons API dan mekanisme penanganan kesalahan.
Mekanisme pembaruan IP layanan: Memberikan strategi dan praktik terbaik untuk pembaruan IP layanan.
2. Format API
API penjadwalan mendukung akses melalui HTTP atau HTTPS. Format API-nya adalah sebagai berikut:
URL layanan:
http(s)://{startup_endpoint}/{account_id}/ss?+{request_parameters}Metode permintaan: GET
Jika Anda menggunakan protokol HTTPS, Anda harus mengatur manual header `Host` untuk validasi sertifikat menjadi `resolvers.httpdns.aliyuncs.com`.
{startup_endpoint}: Titik akhir startup. Untuk informasi selengkapnya dan memilih titik akses yang sesuai, lihat dokumen Launch Access Point.{account_id}adalah ID akun Anda. Anda dapat memperolehnya dari Developer configuration.{request_parameters}menyediakan kontrol penjadwalan tambahan. Untuk informasi selengkapnya, lihat bagian Deskripsi parameter.
3. Deskripsi parameter
Gunakan parameter permintaan untuk mengontrol kebijakan penjadwalan dan mekanisme keamanan. Anda dapat mengatur parameter ini untuk mengaktifkan fitur seperti penjadwalan dasar dan autentikasi signature.
3.1. Daftar parameter
Parameter | Deskripsi | Diperlukan | Ditandatangani | Contoh nilai |
| ID akun. Ditentukan dalam path URL. | Ya | Tidak |
|
| Wilayah penjadwalan. Menentukan lokasi geografis kluster layanan. • cn: kluster daratan Tiongkok (default) • hk: kluster Hong Kong (Tiongkok) • sg: kluster Singapura • us: kluster AS • de: kluster Jerman • global: penjadwalan berbasis kedekatan global | Tidak | Tidak |
|
| Bilangan acak untuk signature. String heksadesimal dengan panjang 8 hingga 16 karakter. | Tidak | Ya |
|
| Timestamp untuk periode validitas signature. Merupakan waktu saat ini ditambah periode validitas dalam detik. Disarankan periode validitas antara 30 hingga 300 detik. | Tidak | Ya |
|
| Signature HMAC-MD5. String heksadesimal 32 digit. | Tidak | Tidak |
|
3.2. Contoh parameter permintaan
Permintaan untuk wilayah tertentu
GET https://{startup_endpoint}/{account_id}/ss?region=cn&n=abcdef2345&t=1632912372&s=de7be63a9f19cf11e9d455d7d4f23cb4 HTTP/1.1Permintaan berbasis kedekatan
GET https://{startup_endpoint}/{account_id}/ss?region=global&n=abcdef2345&t=1632912372&s=de7be63a9f19cf11e9d455d7d4f23cb4 HTTP/1.14. Penandatanganan permintaan (opsional)
Aktifkan penandatanganan permintaan untuk meningkatkan keamanan permintaan penjadwalan. Mekanisme ini mencegah perubahan pada permintaan.
4.1. Algoritma signature
Algoritma: HMAC-MD5
Kunci: Kunci penandatanganan. Anda dapat memperoleh kunci tersebut dari Developer Configurations.
Input: String yang disusun dalam format `{n}-{secret}-{t}`.
Output: String heksadesimal 32 digit dalam huruf kecil.
4.2. Langkah-langkah penandatanganan
Hasilkan bilangan acak n: String heksadesimal sepanjang 8 hingga 16 digit.
Peroleh timestamp t yang valid: Waktu saat ini ditambah periode validitas dalam detik. Disarankan periode validitas antara 30 hingga 300 detik.
Susun string signature: Gabungkan komponen-komponen dalam format
{n}-{secret}-{t}.Hitung signature: Gunakan algoritma HMAC-MD5 untuk menghitung nilai signature.
4.3. Contoh penandatanganan
Asumsikan hal berikut:
Bilangan acak n =
abcdef2345SecretKey =
123456Timestamp t =
1632912372Wilayah region =
cn
Proses perhitungan signature:
String to sign = "abcdef2345-123456-1632912372"
s = HMAC-MD5("123456", "abcdef2345-123456-1632912372")
= "de7be63a9f19cf11e9d455d7d4f23cb4"Permintaan akhir:
GET https://{startup_endpoint}/{account_id}/ss?region=cn&n=abcdef2345&t=1632912372&s=de7be63a9f19cf11e9d455d7d4f23cb4 HTTP/1.15. Deskripsi respons API
Respons API penjadwalan berisi daftar alamat IP layanan dan metadata terkait. Bagian ini menjelaskan struktur data untuk respons sukses, definisi bidang, serta cara menangani kesalahan.
5.1. Format respons
Jika permintaan berhasil, kode status respons HTTP adalah 200. Respons berformat JSON:
{
"service_ip": [
"203.107.1.xx",
"106.xxx.1.xx"
],
"service_ipv6": [
"64:ff9b::xxx:121",
"64:ff9b::xxx:122"
]
}5.2. Deskripsi bidang respons
Bidang | Deskripsi |
service_ip | Daftar Titik akhir IPv4 untuk layanan resolusi. |
service_ipv6 | Daftar Titik akhir IPv6 untuk layanan resolusi. |
5.3. Respons kesalahan
Jika permintaan gagal, kode status respons HTTP adalah 4xx atau 5xx. Respons berformat JSON:
{
"code": "MissingArgument"
}Kode kesalahan umum:
Kode kesalahan | Kode status HTTP | Deskripsi |
MissingArgument | 400 | Parameter yang diperlukan tidak tersedia. |
TimeOutOfSync | 400 | Deviasi waktu terlalu besar. Kalibrasi waktu berdasarkan header respons `Date`. |
InvalidNonce | 400 | Format bilangan acak tidak valid. |
InvalidTimestamp | 403 | Format timestamp tidak valid. |
AccountNotExists | 403 | Akun tidak ada atau dinonaktifkan. |
InternalError | 500 | Terjadi kesalahan internal server. |
6. Ringkasan
Topik ini menjelaskan penggunaan dan detail teknis API layanan penjadwalan HTTPDNS, termasuk aspek-aspek penting seperti format API, pengaturan parameter, mekanisme keamanan, dan penanganan respons. Anda dapat menggunakan API penjadwalan untuk memperoleh daftar IP layanan resolusi optimal. Setelah memperoleh daftar IP tersebut, Anda dapat melakukan resolusi nama domain. Untuk informasi selengkapnya, lihat Domain Name Resolution Interface.