インストール
システム要件:
自動インストール
まず、mbc-cqrs-serverless CLI を使用してプロジェクトをスキャフォールディングします。次のコマンドを実行します。これにより、新しいプロジェクト ディレクトリが作成され、そのディレクトリに初期コアの mbc-cqrs-serverless ファイルとサポート モジュールが追加され、プロジェクトの従来の基本構造が作成されます。
npm i -g @mbc-cqrs-serverless/cli
mbc new project-name
mbc-cqrs-serverless を初めて使う方は、プロジェクト構造 のドキュメントを参照して、アプリケーション内で使用できるすべてのファイルとフォルダーの概要を確認してください。
開発用サーバの実行
npm run buildを実行してウォッチモードでプロジェクトをビルドします。- 別のターミナルセッションを開いて
npm run offline:dockerを実行し、Dockerサービス(DynamoDB Local、MySQL、LocalStack)を起動します。 - MySQLが完全に起動するまで約30秒待ってから、別のターミナルを開いて
npm run migrateを実行し、RDSとDynamoDBのテーブルをマイグレーションします。 - 最後に
npm run offline:slsコマンドを実行して serverless offline mode を実行します。
ローカル開発でのAWSクレデンシャル
ローカル開発ではLocalStackを使用してAWSサービスをエミュレートします。実際のAWSクレデンシャルは不要です — .envファイルにダミー値を設定してください:
AWS_ACCESS_KEY_ID=local
AWS_SECRET_ACCESS_KEY=local
サーバの起動が完了したら次のようなメッセージを確認する事が出来ます。
DEBUG[serverless-offline-sns][adapter]: successfully subscribed queue "http://localhost:9324/101010101010/notification-queue" to topic: "arn:aws:sns:ap-northeast-1:101010101010:MySnsTopic"
Offline Lambda Server listening on http://localhost:4000
serverless-offline-aws-eventbridge :: Plugin ready
serverless-offline-aws-eventbridge :: Mock server running at port: 4010
Starting Offline SQS at stage dev (ap-northeast-1)
Starting Offline Dynamodb Streams at stage dev (ap-northeast-1)
Starting Offline at stage dev (ap-northeast-1)
Offline [http for lambda] listening on http://localhost:3002
Function names exposed for local invocation by aws-sdk:
* main: serverless-example-dev-main
Configuring JWT Authorization: ANY /{proxy+}
┌────────────────────────────────────────────────────────────────────────┐
│ │
│ ANY | http://localhost:3000/api/public │
│ POST | http://localhost:3000/2015-03-31/functions/main/invocations │
│ ANY | http://localhost:3000/swagger-ui/{proxy*} │
│ POST | http://localhost:3000/2015-03-31/functions/main/invocations │
│ ANY | http://localhost:3000/{proxy*} │
│ POST | http://localhost:3000/2015-03-31/functions/main/invocations │
│ │
└────────────────────────────────────────────────────────────────────────┘
Server ready: http://localhost:3000 🚀
次のサービスのエンドポイントが起動します。:
- API Gateway: http://localhost:3000
- Swagger UI: http://localhost:3000/swagger-ui
- オフラインLambdaサーバー: http://localhost:4000
- Lambda用HTTP: http://localhost:3002
- Step Functions: http://localhost:8083
- DynamoDB: http://localhost:8000
- DynamoDB管理画面: http://localhost:8001
- SNS: http://localhost:4002
- SQS: http://localhost:9324
- SQS管理画面: http://localhost:9325
- Localstack: http://localhost:4566
- AppSync: http://localhost:4001
- Cognito: http://localhost:9229
- EventBridge: http://localhost:4010
- Simple Email Service: http://localhost:8005
npx prisma studioを実行して prisma studio を起動します。 エンドポイント: http://localhost:5000
セットアップの確認
Swagger UI をブラウザで開き、APIサーバーが起動していることを確認してください。利用可能なすべてのエンドポイントを含むインタラクティブなAPIドキュメントが表示されるはずです。
ローカルサービスのポート設定
バージョンノート
ローカルポート設定機能はバージョン 1.0.26で追加されました。
他のサービス(別のMySQLインスタンスやポート3000を使用する他のアプリケーションなど)とポートが競合する場合は、.envファイルの環境変数でローカルサービスのポートを設定できます。