DynamoDB

DynamoDBMapperでテーブル名に動的にプレフィックスを付け加える

More than 1 year has passed since last update.

環境を開発、テスト、本番と使い分けるためにDynamoDBのテーブル名にプレフィックスを付けるケースは多いと思います。

DynamoDBMapperには、Mapperの生成時にDynamoDBMapperConfigを使って設定を書き換える機能があります。

この設定の一つに、テーブル名を差し替える機能があるのでこれを使用します。

公式のドキュメントはこちら(ただし既にコードがDeprecatedになっている)


テーブル名にプレフィックスを付ける

TableNameOverrideを使って、テーブル名にプレフィックスを付けることができます。

サンプルです。言語はScalaで書かれています。

@DynamoDBTable(tableName="Music")

class MusicItem {
// 省略
}

val client: AmazonDynamoDBClient = (new AmazonDynamoDBClient())
.withEndpoint("http://localhost:8000")

// Configの生成
val mapperConfig: DynamoDBMapperConfig = new DynamoDBMapperConfig.Builder()
.withTableNameOverride(TableNameOverride.withTableNamePrefix("Dev-"))
.build()

// Mapper生成時にConfigを渡す
val mapper: DynamoDBMapper = new DynamoDBMapper(client, mapperConfig)

この場合、MapperはDev-Musicテーブルに対してアクセスするようになります。