Anda dapat mengikat plug-in jenis Penyimpanan ke API untuk menyimpan respons dari layanan backend API di API Gateway. Hal ini secara efektif mengurangi beban pada backend dan mempersingkat waktu respons.
1. Catatan Penggunaan
Plug-in jenis Penyimpanan hanya dapat menyimpan respons terhadap permintaan API yang menggunakan metode GET.
Respons tidak disimpan untuk permintaan yang menggunakan
domain tingkat kedua publik yang ditetapkan sistem. Domain tingkat kedua yang ditetapkan sistem hanya untuk tujuan debugging dan pengujian. Jika Anda menggunakannya untuk membuat panggilan API, Anda hanya dapat melakukan 100 panggilan per hari di wilayah di luar Tiongkok Daratan dan 1.000 panggilan per hari di wilayah di Tiongkok Daratan.Saat mengonfigurasi plug-in penyimpanan, Anda dapat menggunakan parameter berikut untuk mengurutkan respons dalam cache:
varyByApp: menentukan apakah akan mengurutkan respons yang tersimpan berdasarkan aplikasi dari mana permintaan API dikirim.
varyByParameters: menentukan apakah akan mengurutkan respons yang tersimpan berdasarkan nilai parameter permintaan dalam permintaan API. Plug-in menggunakan parameter permintaan yang sama dari operasi API yang terikat dengan plug-in untuk mengurutkan respons terhadap permintaan API.
varyByHeaders: menentukan apakah akan mengurutkan respons yang tersimpan berdasarkan bidang header permintaan dalam permintaan API, misalnya
AcceptdanAccept-Language.
API Gateway memberikan setiap pengguna ruang penyimpanan sebesar 1 MB di setiap wilayah. Cache dibersihkan setelah kedaluwarsa. Jika cache mencapai batas ruangnya, tidak ada respons tambahan yang disimpan dalam cache.
Jika bidang header
Cache-Controlditentukan dalam respons dari backend API, respons tersebut disimpan dalam cache berdasarkan kebijakan cache yang ditentukan. Jika bidang headerCache-Controltidak ditentukan dalam respons, respons tersebut disimpan dalam cache berdasarkan kebijakan cache default dan untuk jangka waktu yang ditentukan oleh parameterdurationdari plug-in jenis Penyimpanan yang terikat dengan API.Sebuah respons dapat disimpan dalam cache selama maksimal 48 jam (172.800 detik). Jika Anda menetapkan periode lebih dari 48 jam, respons tersebut tetap disimpan selama 48 jam dalam cache.
Secara default, API Gateway mengabaikan bidang header
Cache-Controldalam permintaan klien. Anda dapat menentukan parameterclientCacheControluntuk plug-in jenis Penyimpanan untuk memutuskan apakah akan mengabaikan atau menangani bidang headerCache-Controldalam permintaan klien. Anda dapat mengatur parameter clientCacheControl ke mode berikut:off: mengabaikan bidang headerCache-Controldalam semua permintaan klien.all: menangani bidang headerCache-Controldalam semua permintaan klien.app: menangani bidang headerCache-Controldalam permintaan dari aplikasi yang ditentukan oleh parameterappsdari plug-in jenis Penyimpanan.
Secara default, API Gateway hanya menyimpan bidang header
Content-Type,Content-Encoding, danContent-Languagedalam respons. Jika Anda perlu menyimpan lebih banyak bidang header, tambahkan bidang header dalam parametercacheableHeadersdari plug-in jenis Penyimpanan.
2. Konfigurasikan Plug-in
Anda dapat mengonfigurasi plug-in jenis Penyimpanan dalam format JSON atau YAML. Kedua format memiliki skema yang sama dan dapat dikonversi satu sama lain menggunakan alat konversi. Kode berikut menjelaskan template konfigurasi plug-in dalam format YAML:
---
varyByApp: false # Menentukan apakah akan mencocokkan dan melayani respons yang tersimpan berdasarkan ID aplikasi pemanggil API. Nilai default: false.
varyByParameters: # Menentukan apakah akan mencocokkan dan melayani respons yang tersimpan berdasarkan nilai parameter tertentu.
- userId # Nama parameter backend. Jika parameter backend dipetakan ke parameter dengan nama berbeda, atur parameter ini ke nama parameter yang dipetakan.
varyByHeaders: # Menentukan apakah akan mencocokkan dan melayani respons yang tersimpan berdasarkan header permintaan yang berbeda.
- Accept # Respons yang tersimpan dicocokkan dan dilayani berdasarkan header Accept.
clientCacheControl: # API Gateway menentukan cara memproses header Cache-Control permintaan klien berdasarkan pengaturan clientCacheControl.
mode: "app" # Nilai valid: off, all, dan apps. Nilai default: off. off menunjukkan bahwa API Gateway mengabaikan header Cache-Control dari semua permintaan klien. all menunjukkan bahwa API Gateway memproses header Cache-Control dari semua permintaan klien. apps menunjukkan bahwa API Gateway hanya memproses header Cache-Control dari permintaan klien yang ID aplikasinya termasuk dalam daftar aplikasi yang dikonfigurasi.
apps: # Daftar ID aplikasi. Jika mode diatur ke app, API Gateway hanya memproses header Cache-Control dari permintaan klien yang ID aplikasinya ada dalam daftar ini.
- 1992323 # Contoh ID aplikasi. Bukan AppKey.
- 1239922 # Contoh ID aplikasi. Bukan AppKey.
cacheableHeaders: # Bidang header respons yang dapat disimpan. Secara default, hanya bidang header `Content-Type`, `Content-Length`, dan `Content-Language` yang dapat disimpan.
- X-Customer-Token # Nama header respons yang dapat disimpan.
duration: 3600 # Periode penyimpanan default respons dalam cache. Satuan: detik. 3. Mekanisme Kerja
Jika permintaan API mengenai cache API, header
X-Ca-Caching: truedisertakan dalam respons terhadap permintaan API.
4. Batasan
Metadata dari satu plug-in tidak boleh melebihi ukuran 50 KB.
Badan respons yang melebihi ukuran 128 KB tidak dapat disimpan.
Untuk API pada instance bersama atau tanpa server, setiap pengguna memiliki ruang penyimpanan total maksimum 1 MB di setiap wilayah. Untuk informasi tentang batasan pada API pada instance khusus, lihat spesifikasi instance khusus.