Level Bersarang telah melampaui batas yang didukung
TL;DR — DynamoDB memungkinkan Anda menyusun tipe dokumen (memetakan M dan mencantumkan L) di dalam satu sama lain hingga kedalaman 32 level. Struktur yang lebih dalam ditolak dengan ValidationException. Ratakan model data, pisahkan cabang dalam menjadi item terpisah, atau simpan subpohon yang terlalu dalam sebagai string serial tunggal.
Apa artinya
ValidationException: 1 validation error detected: Nesting Levels have exceeded supported limits
# what the engine actually returns, reproduced against DynamoDB Local:
ValidationException: 1 validation error detected: Nesting Levels have exceeded supported limits: Attributes in the item have nested levels beyond supported limitMengapa itu terjadi
- Data yang sangat rekursif — struktur tree/graph (bagan organisasi, rangkaian komentar, kategori bertingkat) diserialkan sebagai peta dalam peta yang melebihi 32 level.
- Serializer generik — kode yang menyusun JSON bersarang secara sewenang-wenang langsung ke jenis dokumen DynamoDB tanpa pelindung kedalaman.
- Sarang mandiri yang tidak disengaja — bug yang membungkus item di dalam dirinya berulang kali.
- Dokumen yang dimigrasi dari database dokumen yang kumpulannya tidak pernah dibatasi.
Bagaimana cara memperbaikinya
- Ratakan model — angkat substruktur yang dalam ke dalam atribut tingkat atas atau tata letak kunci komposit, bukan peta yang semakin dalam.
- Pisahkan menjadi beberapa item — memodelkan cabang dalam sebagai item terpisah di bawah kunci partisi yang sama (pola kedekatan tabel tunggal).
- Buat serial subpohon dalam — simpan bagian yang terlalu dalam sebagai satu atribut string JSON (buram bagi DynamoDB, sehingga kedalaman internalnya tidak dihitung lagi) jika Anda tidak perlu melakukan kueri ke dalamnya.
- Tambahkan pelindung kedalaman di lapisan marshalling Anda sehingga dokumen tidak dapat tumbuh melampaui batas secara diam-diam.
- Ukur kedalaman sebelum menulis. Telusuri pohon dokumen di serializer Anda dan tolak apa pun di atas 30 level — sisakan ruang untuk satu jalur pembaruan lagi.
Ukur di DynoTable
Periksa atribut bertingkat di DynoTable sebelum Anda menulisnya — buka item dengan ⌘K dan perluas bidang map/list di penampil JSON untuk melihat seberapa dalam struktur dijalankan. Staging (⌘S) memungkinkan Anda melihat pratinjau put/update dan menangkap kesalahan kedalaman sebelum melakukan.
Gunakan kalkulator ukuran item bersamaan dengan pemeriksaan kedalaman — penumpukan yang dalam sering kali mendorong item ke batas 400 KB juga. Ganti profil dengan ⌘P saat menguji terhadap Lokal vs AWS. Pengaturan: Sambungkan ke AWS, Instal.
Sumber
- Kendala di Amazon DynamoDB (diverifikasi 13-07-2026)
- Mengacu pada atribut item saat menggunakan ekspresi (diverifikasi 13-07-2026)
Kesalahan terkait
- Ukuran item telah melampaui ukuran maksimum yang diperbolehkan — batas keseluruhan item terpisah sebesar 400 KB.
- Nama atribut ekspresi yang digunakan dalam jalur dokumen tidak ditentukan — kesalahan referensi jalur dokumen.
- ValidationException (ikhtisar)
- Pelajari: tipe data DynamoDB
Referensi
- Kendala di Amazon DynamoDB — Panduan Pengembang Amazon DynamoDB
- TransactWriteItems — Referensi Amazon DynamoDB API
- Mengacu pada atribut item saat menggunakan ekspresi di DynamoDB — Panduan Pengembang Amazon DynamoDB
- Penanganan kesalahan dengan DynamoDB — Panduan Pengembang Amazon DynamoDB
Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.