AWS java Spring

Spring Boot + dynamoDB 環境毎にテーブル名にprefixを付ける

投稿日:

はじめに

Spring BootでdynamoDBを利用した際に、環境毎のテーブル名出し分けに苦労したのでここにメモします。

今回作成したサンプルはdev環境・prd環境に dev-sample-tableprd-sample-tableのテーブル名でdynamoDBを作成してます。
SpringBootではテーブル名としてsample-tableを指定し、prefixとしてdev-prd-を指定してます。

また、prefixはapplication.ymlを環境毎に作成して値を保持しております。
例えば、起動時にパラメータ指定することで環境をapplication.ymlを選択できます。

サンプルコード

githubのサンプルです。全体像が知りたいからはこちらをご覧ください。
EC2で動作確認しました。
spring-boot-dynamodb-env-prefix

ポイント

pom.xml

io.github.boostchickenさんのspring-data-dynamodbを利用しました。
バージョンに依るかもしれませんが、他のspring-data-dynamodbは意図した動作をしませんでした。

configuration

dynamoDBに関する@Configurationをつけたクラスで以下の記述が必要です。
今回はprefixをつけるため withTableNamePrefix を利用して引数にprefixを指定してますが、withTableNameReplacement を利用すれば置換も可能です。

application.yml

環境毎にapplication.ymlを用意して環境固有の値を保持するようにしてます。

application-dev.yml

application-prd.yml

-AWS, java, Spring

Copyright© 若手SIerサラリーマンの独学メモ , 2022 All Rights Reserved Powered by STINGER.