Pengaturan cache untuk REST API di API Gateway - APIGerbang Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pengaturan cache untuk REST API di API Gateway

Anda dapat mengaktifkan caching API di Amazon API Gateway untuk men-cache respons titik akhir Anda. Dengan caching, Anda dapat mengurangi jumlah panggilan yang dilakukan ke titik akhir Anda dan juga meningkatkan latensi permintaan ke API Anda.

Saat Anda mengaktifkan caching untuk suatu tahap, API Gateway menyimpan respons dari titik akhir Anda untuk periode tertentu time-to-live (TTL), dalam hitungan detik. API Gateway kemudian merespons permintaan dengan mencari respons titik akhir dari cache alih-alih membuat permintaan ke titik akhir Anda. Nilai TTL default untuk caching API adalah 300 detik. Nilai TTL maksimum adalah 3600 detik. TTL = 0 berarti caching dinonaktifkan.

catatan

Caching adalah upaya terbaik. Anda dapat menggunakan CacheMissCount metrik CacheHitCount dan di Amazon CloudWatch untuk memantau permintaan yang disajikan API Gateway dari cache API.

Ukuran maksimum respons yang dapat di-cache adalah 1048576 byte. Enkripsi data cache dapat meningkatkan ukuran respons saat sedang di-cache.

Ini adalah Layanan yang Memenuhi Syarat HIPAA. Untuk informasi lebih lanjut tentang AWS, Undang-Undang Portabilitas dan Akuntabilitas Asuransi Kesehatan AS tahun 1996 (HIPAA), dan menggunakan AWS layanan untuk memproses, menyimpan, dan mengirimkan informasi kesehatan yang dilindungi (PHI), lihat Ikhtisar HIPAA.

penting

Saat Anda mengaktifkan caching untuk suatu tahap, hanya GET metode yang mengaktifkan caching secara default. Ini membantu memastikan keamanan dan ketersediaan API Anda. Anda dapat mengaktifkan caching untuk metode lain dengan mengganti pengaturan metode.

penting

Caching dibebankan per jam berdasarkan ukuran cache yang Anda pilih. Caching tidak memenuhi syarat untuk Tingkat AWS Gratis. Untuk informasi selengkapnya, lihat Harga API Gateway.

Aktifkan caching Amazon API Gateway

Di API Gateway, Anda dapat mengaktifkan caching untuk tahap tertentu.

Ketika Anda mengaktifkan caching, Anda harus memilih kapasitas cache. Secara umum, kapasitas yang lebih besar memberikan kinerja yang lebih baik, tetapi juga lebih mahal. Untuk ukuran cache yang didukung, lihat cacheClusterSizedi Referensi API Gateway API.

API Gateway memungkinkan caching dengan membuat instance cache khusus. Proses ini bisa memakan waktu hingga 4 menit.

API Gateway mengubah kapasitas caching dengan menghapus instance cache yang ada dan membuat yang baru dengan kapasitas yang dimodifikasi. Semua data cache yang ada dihapus.

catatan

Kapasitas cache mempengaruhi CPU, memori, dan bandwidth jaringan dari instance cache. Akibatnya, kapasitas cache dapat memengaruhi kinerja cache Anda.

API Gateway merekomendasikan agar Anda menjalankan uji pemuatan 10 menit untuk memverifikasi bahwa kapasitas cache sesuai dengan beban kerja Anda. Pastikan bahwa lalu lintas selama uji beban mencerminkan lalu lintas produksi. Misalnya, sertakan ramp up, lalu lintas konstan, dan lonjakan lalu lintas. Tes beban harus mencakup respons yang dapat disajikan dari cache, serta respons unik yang menambahkan item ke cache. Pantau metrik latensi, 4xx, 5xx, cache hit, dan cache miss selama uji beban. Sesuaikan kapasitas cache sesuai kebutuhan berdasarkan metrik ini. Untuk informasi selengkapnya tentang pengujian beban, lihat Bagaimana cara memilih kapasitas cache API Gateway terbaik agar tidak mencapai batas laju? .

Di konsol API Gateway, Anda mengonfigurasi caching di halaman Tahapan. Anda menyediakan cache tahap dan menentukan pengaturan cache tingkat metode default. Jika Anda mengaktifkan cache tingkat metode default, caching tingkat metode diaktifkan untuk semua GET metode di panggung Anda, kecuali metode tersebut memiliki penggantian metode. GETMetode tambahan apa pun yang Anda terapkan ke tahap Anda akan memiliki cache tingkat metode. Untuk mengonfigurasi pengaturan caching tingkat metode untuk metode spesifik tahap Anda, Anda dapat menggunakan penggantian metode. Untuk informasi selengkapnya tentang penggantian metode, lihat. Ganti caching tingkat tahap API Gateway untuk caching tingkat metode

Untuk mengonfigurasi caching API untuk tahap tertentu:
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Memilih Tahapan.

  3. Dalam daftar Tahapan untuk API, pilih stage.

  4. Di bagian Detail tahap, pilih Edit.

  5. Di bawah Pengaturan tambahan, untuk pengaturan Cache, aktifkan cache API Penyediaan.

    Ini menyediakan cluster cache untuk tahap Anda.

  6. Untuk mengaktifkan caching untuk tahap Anda, aktifkan caching tingkat metode Default.

    Ini mengaktifkan caching tingkat metode untuk semua GET metode di panggung Anda. GETMetode tambahan apa pun yang Anda terapkan ke tahap ini akan memiliki cache tingkat metode.

    catatan

    Jika Anda memiliki setelan yang ada untuk cache tingkat metode, mengubah pengaturan caching tingkat metode default tidak memengaruhi pengaturan yang ada.

    Aktifkan cache API penyediaan dan caching tingkat metode default.
  7. Pilih Simpan perubahan.

catatan

Membuat atau menghapus cache membutuhkan waktu sekitar 4 menit agar API Gateway selesai.

Ketika cache dibuat, nilai cluster Cache berubah dari Create in progress keActive. Ketika penghapusan cache selesai, nilai cluster Cache berubah dari Delete in progress ke. Inactive

Saat Anda mengaktifkan caching tingkat metode untuk semua metode di panggung Anda, nilai caching tingkat metode Default berubah menjadi. Active Jika Anda menonaktifkan caching tingkat metode untuk semua metode di panggung Anda, nilai caching tingkat metode Default akan berubah menjadi. Inactive Jika Anda memiliki setelan yang ada untuk cache tingkat metode, mengubah status cache tidak memengaruhi pengaturan tersebut.

Saat Anda mengaktifkan caching dalam pengaturan Cache tahap, hanya GET metode yang di-cache. Untuk memastikan keamanan dan ketersediaan API Anda, sebaiknya jangan mengubah setelan ini. Namun, Anda dapat mengaktifkan caching untuk metode lain dengan mengganti pengaturan metode.

Jika Anda ingin memverifikasi apakah caching berfungsi seperti yang diharapkan, Anda memiliki dua opsi umum:

  • Periksa CloudWatch metrik CacheHitCountdan CacheMissCountuntuk API dan panggung Anda.

  • Masukkan stempel waktu dalam respons.

catatan

Anda tidak boleh menggunakan X-Cache header dari CloudFront respons untuk menentukan apakah API Anda sedang dilayani dari instance cache API Gateway Anda.

Ganti caching tingkat tahap API Gateway untuk caching tingkat metode

Anda dapat mengganti pengaturan cache tingkat tahap dengan mengaktifkan atau mematikan caching untuk metode tertentu. Anda juga dapat memodifikasi periode TTL atau mengaktifkan atau menonaktifkan enkripsi untuk respons yang di-cache.

Jika Anda mengubah pengaturan caching tingkat metode default dalam detail Tahap, itu tidak memengaruhi pengaturan cache tingkat metode yang memiliki penggantian.

Jika Anda mengantisipasi bahwa metode yang Anda caching akan menerima data sensitif dalam tanggapannya, di Pengaturan Cache, pilih Enkripsi data cache.

Untuk mengonfigurasi caching API untuk metode individual menggunakan konsol:
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih API.

  3. Memilih Tahapan.

  4. Dalam daftar Tahapan untuk API, perluas tahap dan pilih metode di API.

  5. Di bagian Penggantian Metode, pilih Edit.

  6. Di bagian Pengaturan metode, aktifkan atau matikan Aktifkan cache metode atau sesuaikan opsi lain yang diinginkan.

    catatan

    Caching tidak aktif sampai Anda menyediakan cluster cache untuk tahap Anda.

  7. Pilih Simpan.

Gunakan metode atau parameter integrasi sebagai kunci cache untuk mengindeks respons yang di-cache

Ketika metode cache atau integrasi memiliki parameter, yang dapat mengambil bentuk header kustom, jalur URL, atau string kueri, Anda dapat menggunakan beberapa atau semua parameter untuk membentuk kunci cache. API Gateway dapat men-cache respons metode, tergantung pada nilai parameter yang digunakan.

catatan

Kunci cache diperlukan saat mengatur caching pada sumber daya.

Misalnya, Anda memiliki permintaan dalam format berikut:

GET /users?type=... HTTP/1.1 host: example.com ...

Dalam permintaan ini, type dapat mengambil nilai admin atauregular. Jika Anda menyertakan type parameter sebagai bagian dari kunci cache, respons dari di-cache GET /users?type=admin secara terpisah dari yang dariGET /users?type=regular.

Ketika sebuah metode atau permintaan integrasi mengambil lebih dari satu parameter, Anda dapat memilih untuk menyertakan beberapa atau semua parameter untuk membuat kunci cache. Misalnya, Anda hanya dapat menyertakan type parameter dalam kunci cache untuk permintaan berikut, dibuat dalam urutan yang tercantum dalam periode TTL:

GET /users?type=admin&department=A HTTP/1.1 host: example.com ...

Respons dari permintaan ini di-cache dan digunakan untuk melayani permintaan berikut:

GET /users?type=admin&department=B HTTP/1.1 host: example.com ...

Untuk menyertakan metode atau parameter permintaan integrasi sebagai bagian dari kunci cache di konsol API Gateway, pilih Caching setelah Anda menambahkan parameter.

Sertakan parameter metode atau integrasi sebagai kunci cache untuk mengindeks respons yang di-cache

Siram cache tahap API di API Gateway

Saat caching API diaktifkan, Anda dapat membersihkan cache tahap API Anda untuk memastikan bahwa klien API Anda mendapatkan respons terbaru dari titik akhir integrasi Anda.

Untuk menyiram cache tahap API, pilih menu Tindakan tahap, lalu pilih Cache tahap Flush.

catatan

Setelah cache dimatikan, respons dilayani dari titik akhir integrasi hingga cache dibangun kembali. Selama periode ini, jumlah permintaan yang dikirim ke titik akhir integrasi dapat meningkat. Ini dapat meningkatkan latensi keseluruhan API untuk sementara waktu.

Membatalkan entri cache API Gateway

Klien API Anda dapat membatalkan entri cache yang ada dan memuatnya kembali dari titik akhir integrasi untuk permintaan individual. Klien harus mengirim permintaan yang berisi Cache-Control: max-age=0 header. Klien menerima respons langsung dari titik akhir integrasi alih-alih cache, asalkan klien berwenang untuk melakukannya. Ini menggantikan entri cache yang ada dengan respons baru, yang diambil dari titik akhir integrasi.

Untuk memberikan izin kepada klien, lampirkan kebijakan format berikut ke peran eksekusi IAM bagi pengguna.

catatan

Pembatalan cache lintas akun tidak didukung.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:InvalidateCache" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage-name/GET/resource-path-specifier" ] } ] }

Kebijakan ini memungkinkan layanan eksekusi API Gateway membatalkan cache untuk permintaan pada sumber daya tertentu (atau sumber daya). Untuk menentukan sekelompok sumber daya yang ditargetkan, gunakan karakter wildcard (*) untuk account-idapi-id, dan entri lain dalam nilai ARN. Resource Untuk informasi selengkapnya tentang cara menyetel izin untuk layanan eksekusi API Gateway, lihatKontrol akses ke a REST API dengan IAM izin.

Jika Anda tidak memaksakan InvalidateCache kebijakan (atau memilih kotak centang Memerlukan otorisasi di konsol), klien mana pun dapat membatalkan cache API. Jika sebagian besar atau semua klien membatalkan cache API, ini dapat meningkatkan latensi API Anda secara signifikan.

Saat kebijakan diberlakukan, caching diaktifkan dan otorisasi diperlukan.

Anda dapat mengontrol cara penanganan permintaan yang tidak sah dengan memilih opsi dari penanganan permintaan Tidak Sah di konsol API Gateway.

Konfigurasikan pembatalan cache

Tiga opsi menghasilkan perilaku berikut:

  • Gagal permintaan dengan kode status 403: mengembalikan respons 403 Tidak Sah.

    Untuk mengatur opsi ini menggunakan API, gunakanFAIL_WITH_403.

  • Abaikan header kontrol cache; Tambahkan peringatan di header respons: proses permintaan dan tambahkan header peringatan dalam respons.

    Untuk mengatur opsi ini menggunakan API, gunakanSUCCEED_WITH_RESPONSE_HEADER.

  • Abaikan header kontrol cache: proses permintaan dan jangan tambahkan header peringatan dalam respons.

    Untuk mengatur opsi ini menggunakan API, gunakanSUCCEED_WITHOUT_RESPONSE_HEADER.