Tidak dapat terhubung ke titik akhir URL (DynamoDB) — "Could not connect to the endpoint URL"

TL;DR — botocore tidak dapat membuka koneksi ke titik akhir DynamoDB yang diselesaikannya. Hampir selalu --endpoint-url salah, DynamoDB Lokal tidak berjalan, wilayah /typo yang buruk menghasilkan nama host yang tidak ada, atau tidak ada jalur jaringan (offline, VPC, grup keamanan). Arahkan ke titik akhir yang dapat dijangkau dan konfirmasikan ada sesuatu yang mendengarkan.

Apa artinya

botocore.exceptions.EndpointConnectionError: Could not connect to the
endpoint URL: "http://localhost:8000/"

# what the engine actually returns, reproduced against Amazon DynamoDB (live service, us-east-1):
connect ECONNREFUSED 127.0.0.1:9

Mengapa itu terjadi

  • DynamoDB Lokal tidak berjalan — Anda melewati --endpoint-url http://localhost:8000 tetapi emulator tidak aktif pada port tersebut (lihat koneksi ditolak).
  • Titik akhir URL salah — salah ketik, port salah, atau https tempat emulator lokal menyajikan http.
  • Wilayah buruk — wilayah yang salah eja (us-east-11) menghasilkan nama host yang tidak ada, sehingga sambungan tidak dapat dibuat.
  • Tidak ada jalur jaringan — lalu lintas offline, atau DynamoDB diblokir oleh titik akhir VPC, grup keamanan, atau ACL jaringan.
  • Cross-container / cross-host — dari dalam Docker, localhost adalah container itu sendiri, bukan host atau layanan Lokal DynamoDB.

Bagaimana cara memperbaikinya

  1. Konfirmasi apa yang didengarkan di titik akhir:
    curl http://localhost:8000    # DynamoDB Local answers with a small response
  2. Perbaiki titik akhir URL — host, port yang benar (8000 secara default), dan skema (http untuk Lokal).
  3. Periksa ejaan wilayah untuk AWS asli, dan pastikan Anda memiliki rute jaringan (aturan titik akhir VPC/grup keamanan mengizinkan DynamoDB).
  4. Di Docker, gunakan nama layanan penulisan atau host.docker.internal, bukan localhost (host.docker.internal diselesaikan secara otomatis di Docker Desktop; di Linux Docker Engine tambahkan --add-host host.docker.internal:host-gateway).
  5. Berbicara dengan AWS asli? Hapus penggantian --endpoint-url sepenuhnya dan biarkan botocore membangun titik akhir regional yang benar.

Arahkan DynoTable ke Local

DynoTable memvalidasi konektivitas dengan Uji Koneksi pada setiap profil di Pengaturan → Profil (Hubungkan akun AWS). Untuk DynamoDB Lokal, atur titik akhir http://localhost:8000 (atau :4566 untuk LocalStack) dengan kredensial placeholder — nilai yang sama yang dibutuhkan CLI. Tekan ⌘P untuk beralih profil ketika aplikasi Anda menggunakan port yang berbeda dari DynoTable. Panduan: Hubungkan ke DynamoDB Lokal & LocalStack.

Terhadap AWS asli, kesalahan ketik pada string wilayah menghasilkan nama host yang tidak menghasilkan penyelesaian — bentuk EndpointConnectionError yang sama dengan port Lokal yang tidak dapat dijangkau. Konfirmasikan dengan aws sts get-caller-identity pada profil sebelum melakukan debug Pengaturan khusus DynamoDB.

Kesalahan terkait

Sumber

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.