Could not connect to the endpoint URL (DynamoDB)
TL;DR — botocore, çözdüğü DynamoDB uç noktasına bir bağlantı açamadı. Neredeyse her zaman yanlış bir --endpoint-url, çalışmayan DynamoDB Local, var olmayan bir ana bilgisayar adı üreten hatalı/yanlış yazılmış bir bölge ya da ağ yolu olmaması (çevrimdışı, VPC, güvenlik grubu). Ulaşılabilir bir uç noktayı gösterin ve bir şeyin dinlediğini doğrulayın.
Ne anlama gelir
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:9boto3/botocore, DynamoDB uç nokta URL'sini bölgeden (veya açık endpoint_url'nizden) oluşturur ve sonra ona bir TCP/HTTP bağlantısı kurmayı başaramaz. Bir kimlik doğrulama veya doğrulama hatasının aksine, istek asla çalışan bir hizmete ulaşmadı. Hem DynamoDB Local'e (emülatör kapalı / yanlış port) hem de gerçek AWS'ye (hatalı bölge ana bilgisayar adı veya engellenmiş ağ) karşı belirir.
Neden olur
- DynamoDB Local çalışmıyor —
--endpoint-url http://localhost:8000ilettiniz ama emülatör o portta çalışmıyor (bağlantı reddedildiye bakın). - Yanlış uç nokta URL'si — bir yazım hatası, yanlış port ya da yerel emülatör
httpsunarkenhttps. - Hatalı bölge — yanlış yazılmış bir bölge (
us-east-11) var olmayan bir ana bilgisayar adına çözümlenir, bu yüzden bağlantı kurulamaz. - Ağ yolu yok — çevrimdışı ya da DynamoDB trafiği bir VPC uç noktası, güvenlik grubu veya ağ ACL'si tarafından engelleniyor.
- Kapsayıcılar arası / ana bilgisayarlar arası — Docker içinden
localhost, ana bilgisayar ya da DynamoDB Local hizmeti değil, kapsayıcının kendisidir.
Nasıl düzeltilir
- Uç noktada neyin dinlediğini doğrulayın:
curl http://localhost:8000 # DynamoDB Local answers with a small response - Uç nokta URL'sini düzeltin — doğru ana bilgisayar, port (varsayılan
8000) ve şema (Local içinhttp). - Gerçek AWS için bölge yazımını kontrol edin ve bir ağ yolunuz olduğundan emin olun (VPC uç noktası / güvenlik grubu kuralları DynamoDB'ye izin verir).
- Docker'da,
localhostyerine compose hizmet adını veyahost.docker.internal'ı kullanın (host.docker.internalDocker Desktop'ta otomatik çözümlenir; Linux Docker Engine'de--add-host host.docker.internal:host-gatewayekleyin). - Gerçek AWS ile mi konuşuyorsunuz?
--endpoint-urlgeçersiz kılmasını tamamen bırakın ve botocore'un doğru bölgesel uç noktayı oluşturmasına izin verin.
DynoTable’ı Local’e yönelt
DynoTable her profildeki Bağlantıyı Test Et ile bağlantıyı doğrular.
Ayarlar → Profiller (Connect an AWS account). için
DynamoDB Yerel, uç noktayı http://localhost:8000 (veya LocalStack için :4566) ayarlayın
yer tutucu kimlik bilgileriyle - CLI'nin ihtiyaç duyduğu değerlerle aynı. ⌘P tuşuna basın
Uygulamanız DynoTable'dan farklı bir bağlantı noktası kullandığında profilleri değiştirmek için. Kılavuz:
DynamoDB Local ve LocalStack'e bağlanma.
Gerçek AWS'ye karşı, bölge dizesindeki bir yazım hatası, geçerli olmayan bir ana bilgisayar adı üretir.
çözümleme — erişilemeyen bir Yerel bağlantı noktasıyla aynı EndpointConnectionError şekli.
Hata ayıklamadan önce profilde aws sts get-caller-identity ile onaylayın
DynamoDB-özel ayarlar.
İlgili hatalar
- Could not connect to DynamoDB Local (ECONNREFUSED) — reddedilen bir yerel bağlantının Node/JS eşdeğeri.
- Missing region in config — bölge yok, bu yüzden SDK hiç uç nokta oluşturamaz.
- Öğrenin: Running DynamoDB Local · Connecting to DynamoDB Local / LocalStack
Kaynaklar
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (default port 8000, dummy credentials,
--endpoint-url) - DynamoDB local usage notes — AWS DynamoDB Developer Guide (setting the local endpoint;
--endpoint-urlrequired on every CLI command) - Error handling — Boto3 Developer Guide (
EndpointConnectionErroras a client-side botocore exception) docker run --add-host— Docker CLI reference (host.docker.internal/host-gatewayfor container-to-host connections)
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.