Docker ile DynamoDB Local Çalıştırma
DynamoDB Local, tek bir süreçteki gerçek DynamoDB motorudur — AWS hesabı yok, ağ yok, istek başına fatura yok. Yerel geliştirme ve entegrasyon testleri için kullanın, ardından aynı kodu production'da buluta yönlendirin.
Container'ı başlatın
docker run -p 8000:8000 amazon/dynamodb-localBu, motoru http://localhost:8000 üzerinde sunar.
docker-compose
Çoğu proje, tüm ekibin aynı endpoint'i alması için onu docker-compose.yml
içinde sabitler:
services:
dynamodb:
image: amazon/dynamodb-local
command: '-jar DynamoDBLocal.jar -sharedDb -dbPath /data'
ports:
- '8000:8000'
volumes:
- dynamodb-data:/data
volumes:
dynamodb-data:Kalıcılık
Varsayılan olarak DynamoDB Local bellek içidir — container durduğunda her tablo kaybolur. İki bayrak onu kalıcı yapar:
-sharedDbtüm istemcileri tek bir paylaşılan veritabanı dosyasında tutar (onsuz, her kimlik bilgileri/bölge seti kendi izole DB'sini alır — yaygın bir "tablom nereye gitti?" sürprizi).-dbPath /data+ bağlanmış bir volume, bu dosyayı diske yazar, böylece verilerdocker compose down'dan sonra hayatta kalır.
SDK'yı ona yönlendirin
Yalnızca endpoint değişir — kimlik bilgileri herhangi bir sahte değer olabilir:
import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
const client = new DynamoDBClient({
endpoint: 'http://localhost:8000',
region: 'local',
credentials: {accessKeyId: 'x', secretAccessKey: 'x'}
});Bir tablo oluşturun
aws dynamodb create-table \
--endpoint-url http://localhost:8000 \
--table-name AppData \
--attribute-definitions AttributeName=PK,AttributeType=S AttributeName=SK,AttributeType=S \
--key-schema AttributeName=PK,KeyType=HASH AttributeName=SK,KeyType=RANGE \
--billing-mode PAY_PER_REQUESTBuradaki gibi bir single-table PK/SK şeması iyi
bir varsayılandır. Fixture'lar yüklerken, düz JSON'u
DynamoDB-JSON dönüştürücüsü ile wire formatına
dönüştürün.
Container'ın çalışır durumda olduğunu ve tablonun oluştuğunu doğrulayın:
aws dynamodb list-tables --endpoint-url http://localhost:8000Bir GUI ile gözden geçirin
CLI çağrıları hızla yorucu hale gelir. Olağan seçenekler, açık kaynaklı
dynamodb-admin web arayüzü veya bir masaüstü istemcisidir.
DynoTable, doğrudan localhost:8000'e (veya herhangi bir LocalStack
endpoint'ine — DynamoDB Local & LocalStack'e bağlanma
bölümüne bakın) bağlanır ve yerel tablolara, bulut tabloları için kullandığınız
aynı arayüzle göz atmanıza, SQL Workbench ile sorgulamanıza ve düzenlemenize olanak
tanır — aws CLI gidiş gelişleri olmadan.