Dynamodb 撞牆筆記 -1- 自架時 region, id 很重要,否則換個 client 可能就找不到剛存的資料
Dynamo 的 region, id 很重要
特別是架設自己的 Dynamo (dynamo-local) 時,如果 Server 端沒有指定好 region, id ,就會按照 client 連接時發送的 region, id 來走。
當你使用不同的 region, id 連接 Dynamo 時,資料是互相區隔開的。
所以,如果按照 aws 提供的 Dynamo-local docker 來入門,在不知情的狀況下,可能撞到這個牆,因為他提供的 container 建構指令,不會指定 region 跟 id。
當使用多個 client 時,很可能找不到另一個 client 新增的資料 (例如你一邊使用 python 寫存取程式,一邊用 GUI 工具連接想看看結果)
我撞到此牆,因為我 GUI 工具跟 python request 這邊套用的 region 跟 id 不同,導致一頭霧水很久。
docker container 參考指令
docker run -d \ -p 8001:8000 \ -e AWS_ACCESS_KEY_ID=fakeMyKeyId \ -e AWS_SECRET_ACCESS_KEY=fakeSecretAccessKey \ -e AWS_REGION=us-west-2 \ --name dynamo amazon/dynamodb-local:latest
上面三個 -e 的環境變數是重點,我採用設置環境變數的方式,固定住 Server 端的 region 與 id
有看文件似乎也可以採用設置 ~/.aws/xxx 設定的方式,但我沒嘗試這招,有興趣者或許可試試看。
Leave a Reply