ダメ元エンジニアのお勉強おメモ

ほとんど自分用のメモです。AWS をよく触ります。Web アプリとか作ります。Raspberry Pi も好きです。

Amazon DynamoDB

DynamoDB にアクセスする際はタイムアウトとリトライの設定を考慮した方が良いと思った

メモ API Gateway -> Lambda -> DynamoDB の構成で、時々タイムアウトが発生した。 調べると DynamoDB へアクセスした際にレスポンスが返らず、API Gateway のタイムアウト29秒に達したっぽい。 DynamoDB へアクセスする際のオプションとして、タイムアウト…

DynamoDB の UpdateItem で加算処理を行う

概要 加算処理を行うとき毎回調べるのでメモる。 コード TypeScript だとこんな感じ。 import * as DynamoDB from 'aws-sdk/clients/dynamodb'; const DYNAMODB_API_VERSION = '2012-10-08'; const REGION = 'ap-northeast-1'; const TABLE_NAME = 'sample-t…

DynamoDB で存在しないデータに対して delete-item した際にエラーを発生させたい

概要 DynamoDB で delete-item した際、削除対象のデータが存在しなかったとしてもエラーは発生しない。AWS CLI がその挙動なので、恐らくどの言語でも同じだと思う。 % aws dynamodb delete-item \ --table-name sample-table \ --key '{"pk": {"S": "sampl…

DynamoDB で GSI に対して強力な整合性のある読み込みはできない

参考 dev.classmethod.jp ただし、グローバルセカンダリインデックス (GSI)で「強力な整合性のある読み込み」が利用できないことは忘れないで下さい。 経緯 Lambda で DynamoDB のテーブルに対して「強力な整合性のある読み込み」をしようと思ったらエラーが…

グローバルテーブルを設定した DynamoDB テーブルに対して、強い整合性のある読み込みをしても失敗する場合に確認すること

原因 例えば、東京/シンガポールリージョンでグローバルテーブルの設定をした DynamoDB のテーブルが存在するとして、 両リージョンで用意している同じコードの Lambda が、下記のように実装されている場合。 import * as DynamoDB from 'aws-sdk/clients/dy…