サーバレスAPIゲートウェイを複数同時に実行する場合は、ローカルで同時に--port
パラメータを使用して簡単に実行できます。基本的には
、オープン2つのコマンドライン・ウィンドウと最初のウィンドウでは、あなたの最初のサービスディレクトリに移動して実行します。
sls offline start --port 3001
を他のウィンドウに、あなたの第2のサービスに移動して実行します。
sls offline start --port 3002
この方法で、あなたは、2つの(この例ではhttp://localhost:3001
とhttp://localhost:3002
)ポートでlisten 2つのサービスがあります。
あなたはまた、サーバレス・DynamoDBのローカルプラグインを使用する場合(現時点では)1つのキャッチがあります:
あなたはDynamoDBのプラグインを使用しない場合、あなたは大丈夫です、今読んで停止することができます:)
DynamoDBのプラグインが同じ--port
パラメータを使用しており、それがjava.net.BindException: Address already in use
この問題を参照してください原因:https://github.com/99xt/serverless-dynamodb-local/issues/135
Tをこれは、serverless-offline-local
プラグインを(2つ以上ある場合)のみ有効にしておきます。
例、 my-service-1
では、serverless.yaml
ファイル内のすべてのDynamoDBのコンフィグを維持し、デフォルトのポートでこのサービスを開始:sls offline start --migrate true
。次のサービスではmy-service-2
とし、serverless-dynamodb-local
からplugins
をserverless.yaml
に変更してください(他の変更は必要ありません)。sls offline start --port 3001
でサービスを開始することができます。
最初のサービスはDynamoDBを起動し、2番目のサービスで使用できるようになります。
デフォルトでは、 'serverless-offline'は' http:// localhost:3000'へのリクエストをプロキシし、複数のエンドポイント/機能に対するリクエストを処理します。しかし、あなたは何か違うことがあるように思えます - あなたは 'serverless.yml'を投稿できますか?これは非常に退屈なプロジェクトなので、私はこの質問の答えを本当に知っていませんが、私はいくつかのことを話すことができるかもしれません。 – killthrush
私は複数のサービス/ .ymlを持っていました。異なるサーバー上で実行しなければならなかったAPIゲートウェイが多すぎます。 – gr3g