はじめに
AWS Dynamo DB でデフォルトの検索キー(プライマリーキー)以外の検索(グローバルセカンダリインデックス)を作成して、それを活用してlambdaで検索を掛ける
グローバルセカンダリインデックスを設定する
まずdynamoDBの画面に移動して、キーを設定したいテーブルを選択。概要の隣にある「インデックス」を選択する。その画面で、「インデックスの作成」を選択。
インデックス作成画面になるので、色々と項目があるけれども、パーティションキーに検索した項目の名前、インデックス名にlambdaなどで使うときの名前を入力しておけば最低限できるようになっているので入力して、インデックスの作成を選択。他の項目は割愛する。
インデックスが作成される。が、量が多いと時間がかかる。
lambdaでquery時にindexnameを指定する
lambdaでdynamoを呼び出すときに、IndexNameをして使用する
table.query(
KeyConditionExpression=Key('hogehoge').eq('hogehoge'),
ScanIndexForward=True,
IndexName='作成したインデックスの名前'
)
これでプライマリーキー以外でも検索を行うことができる