2017-06-06 7 views
2

サーバレスフレームワークとサーバレスオフラインプラグインを使用してサーバーレスアプリケーションを簡単にデバッグすることはできますが、複数のAPIゲートウェイ/サービスがある場合はどのように処理しますか?サーバレスオフライン:複数のAPIゲートウェイを処理

サービスごとにserverless offlineを実行し、それぞれ異なるポートを.ymlに設定する必要がありますか?
とその環境変数にそのポートをハードコードするので、process.env.offlineがtrueの場合、そのポートにアクセスできますか?

+0

デフォルトでは、 'serverless-offline'は' http:// localhost:3000'へのリクエストをプロキシし、複数のエンドポイント/機能に対するリクエストを処理します。しかし、あなたは何か違うことがあるように思えます - あなたは 'serverless.yml'を投稿できますか?これは非常に退屈なプロジェクトなので、私はこの質問の答えを本当に知っていませんが、私はいくつかのことを話すことができるかもしれません。 – killthrush

+0

私は複数のサービス/ .ymlを持っていました。異なるサーバー上で実行しなければならなかったAPIゲートウェイが多すぎます。 – gr3g

答えて

2

サーバレスAPIゲートウェイを複数同時に実行する場合は、ローカルで同時に--portパラメータを使用して簡単に実行できます。基本的には

、オープン2つのコマンドライン・ウィンドウと最初のウィンドウでは、あなたの最初のサービスディレクトリに移動して実行します。

sls offline start --port 3001

を他のウィンドウに、あなたの第2のサービスに移動して実行します。

sls offline start --port 3002

この方法で、あなたは、2つの(この例ではhttp://localhost:3001http://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からpluginsserverless.yamlに変更してください(他の変更は必要ありません)。sls offline start --port 3001でサービスを開始することができます。

最初のサービスはDynamoDBを起動し、2番目のサービスで使用できるようになります。

関連する問題