📚

【ServerlessFramework】【解決方法】`serverless dynamodb install`が失敗する

2023/07/19に公開

はじめに

久しぶりにServerlessFrameworkのローカル環境を構築しようとしたところ、DynamoDB Localまわりで、以前は発生しなかったエラーが出てきたので、解決方法の備忘録です。

terminal
$ serverless dynamodb install
# ...(略)
Error: Error getting DynamoDb local latest tar.gz location undefined: 403
# ...(略)

原因

  • serverless-dynamodb-localDynamoDB Localの新しいバージョンに対応できてない。

解決方法

  • serverless-dynamodb-localからフォークされたserverless-dynamodbを利用する。



移行手順

1. serverless-dynamodb-localをアンインストールする

導入済みのserverless-dynamodb-localをアンインストールします。

terminal
$ serverless plugin uninstall -n serverless-dynamodb-local

2. serverless-dynamodbをインストールする

新たにserverless-dynamodbをインストールします。

terminal
$ serverless plugin install -n serverless-dynamodb

3. serverless.ymlを修正する

インストールしたserverless-dynamodbpluginsの末尾に追加されてるため、serverless-offlineより前に実行されるように、serverless.ymlを修正します。

serverless.yml
custom:
-  dynamodb:
-    xxx: xxx
-    xxx: xxx
+  serverless-dynamodb:
+    port: 8000
+    docker: false
+    start:
+      migrate: true
+      host: 127.0.0.1
+    stages:
+      - dev

plugins:
+  - serverless-dynamodb
   - serverless-offline
-  - serverless-dynamodb



動作確認

DynamoDB Localをインストールする

terminal
$ serverless dynamodb install
# ...(略)
 Installation complete!

DynamoDB Localを起動する

terminal
$ serverless dynamodb start           
Dynamodb Local Started, Visit: http://localhost:8000/shell
DynamoDB - created table xxx-xxx-dev



参考

amazon dynamodb - AWS JS SDK suddenly throws "The Access Key ID or security token is invalid." - Stack Overflow

Discussion