Provisioned throughput decreases are limited within a given day

TL;DR — DynamoDB membatasi seberapa sering Anda dapat menurunkan provisioned read/write capacity tabel (atau GSI) dalam satu hari UTC. Anda telah menggunakan jatah, jadi UpdateTable ditolak. Tunggu pengisian ulang per jam, gabungkan penurunan menjadi lebih sedikit langkah yang lebih besar, atau alihkan tabel ke on-demand dan berhenti mengelola penurunan sepenuhnya.

Apa artinya

LimitExceededException: Subscriber limit exceeded: Provisioned throughput
decreases are limited within a given UTC day

Setiap tabel memulai hari UTC dengan anggaran kecil penurunan kapasitas (peningkatan dapat dilakukan sesering diperlukan, tergantung kuota akun dan DynamoDB tidak membiarkan Anda naik terlalu cepat). Anda memulai hari dengan 4 penurunan tersedia, dan memperoleh 1 lagi setiap jam hingga maksimum 4 tersedia pada satu waktu — cukup untuk hingga 27 penurunan sepanjang hari 24-jam penuh. Habiskan dan panggilan penurunan UpdateTable lebih lanjut gagal dengan LimitExceededException (HTTP 400; pesan generik panduan pengembang untuk exception ini adalah "Too many operations for a given subscriber.") sampai anggaran terisi ulang. Ini kuota, jadi mencoba ulang secara membabi buta tidak akan membantu dalam jendela yang sama.

Mengapa itu terjadi

  • Auto-scaling berkedip — workload yang meledak membuat auto-scaling DynamoDB menurunkan kapasitas berulang kali, membakar anggaran penurunan.
  • Skrip yang menurunkan kapasitas terlalu sering — banyak penurunan kecil alih-alih satu yang lebih besar.
  • Penyetelan manual selama load test — berulang kali menurunkan kapasitas saat trafik surut.
  • Anggaran per-index — batas penurunan tabel dan GSI terpisah, jadi setiap GSI punya jatahnya sendiri; tabel dengan beberapa index dapat mencapainya di salah satunya. Satu permintaan UpdateTable yang menurunkan tabel dan GSI ditolak seluruhnya jika salah satunya melebihi batas saat ini.

Bagaimana cara memperbaikinya

  1. Tunggu pengisian ulang. Satu penurunan menjadi tersedia setiap jam (hingga 4 tersedia pada satu waktu); anggaran 4-penurunan baru dimulai setiap hari UTC.
  2. Lakukan lebih sedikit penurunan yang lebih besar. Turun dari 1000 → 200 dalam satu langkah alih-alih lima langkah 160-unit.
  3. Setel auto-scaling — naikkan target utilisasi dan tambahkan cooldown scale-in agar berhenti menurunkan terlalu agresif.
  4. Alihkan ke on-demand jika workload meledak atau tidak dapat diprediksi:
    aws dynamodb update-table --table-name <Table> \
      --billing-mode PAY_PER_REQUEST
    On-demand menghapus manajemen kapasitas manual (dan kuota penurunannya) sepenuhnya.

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.