結論
結論を先にいうと
GSIを削除するデプロイを行った後にGSIを作成するデプロイを行うとエラーが出なくなります。
エラー発生まで
この日はserverlessでグローバルセカンダリインデックスを作成し、デプロイしました。
GlobalSecondaryIndexes:
- IndexName: Search
KeySchema:
- AttributeName: email
KeyType: HASH
Projection:
ProjectionType: ALL
ですがインデックス名をもっと具体的にした方がいいと思い、インデックス名を変えてデプロイしました。
GlobalSecondaryIndexes:
- IndexName: SearchUserByEmailGSI
KeySchema:
- AttributeName: email
KeyType: HASH
Projection:
ProjectionType: ALL
すると以下のようなエラーが出ました。
An error occurred: テーブル名 - Cannot perform more than one GSI creation or deletion in a single update.
解決
中3の英語文法すら怪しい英語力なのでperformをみた瞬間英訳するのをやめ、googleの検索フォームにエラー内容をコピーしていました。
調べた結果、削除と作成を別々に行うといいということがわかりました。
GSI名を変えただけだと思っていたのですがserverless的には削除と作成を同時に行おうとしていたのですね
株式会社Grandreamでは、フルリモートであなたのスキルを活かし、活躍できるエンジニアを募集しております。
詳しくは採用ページをご確認いただき、お気軽にお問い合わせください。