2016-10-05 2 views
7

私は最近サーバーレスプロジェクトを更新しました。最後の更新で多くの変更がありました。正しい方法は、同じプロジェクトに関連する複数のラムダ関数とAPIゲートウェイエンドポイントを持っていただきました!複数の機能をサーバーレスでデプロイする

https://serverless.com/

は、私は完全には理解していません。古いサーバーレスでは、私はすべてのラムダとエンドポイントを完全に別個の機能として持っていましたが、これは私のためにはうまく機能しました。

2番目のラムダ関数を最初にオーバーライドしようとすると、もうこれができないようです。おそらく、両方の "サービス名"が同じであるためです。私のサービス名は同じです。なぜなら、両方の終点がAPIゲートウェイ内の同じAPIにあるからです。 serverlessはサービス名に基づいてAPI名を作成するためです。

それで、私は両方の機能を同じ "サービス"に追加しようとしました。これはほとんどの部分で機能しましたが、今では、すべての関数のカスタムロールステートメントを同じロールに含める必要があります(このロールは現在すべての関数にリンクされているためです)。個々の機能に必要な権限よりも多くの権限を効果的に与えます。もう1つの問題は、さまざまな機能のすべてのハンドラファイルが各機能展開バンドルに組み込まれていることです。

基本的には、同じプロジェクトに関連していて機能的には別の複数の機能を持つ正しい方法は何か分かりません。これは意味を成していましたが、現在はありません。

誰もがいくつかのポインタが、私はあなたの欲求不満を理解

おかげ

答えて

5

を喜ば私を与えることができます。私は新しいバージョンをより深く見て、より良い理解を形成するまで同じ感情を持っていました。しかし注意すべき点は、新しいバージョンがまだ完全には完成していないことです。したがって、何かが完全に欠落している場合は、問題を提出し、1.0が外に出る前に優先順位を付けることができます。

functions:セクションの同じサービスで複数の関数を定義することになっています(serverless.yml)。これらの機能を個別にパッケージ化するには、individually: truepackage:セクションの下に設定する必要があります。次に、ルートレベルと関数レベルでincludeオプションとexcludeオプションを使用できます。 includeとexcludeオプション(例**/* - fn.js)でglobシンタックスを使用できるようになります。パッケージングの詳細についてはhttps://serverless.com/framework/docs/guide/packaging/をご覧ください。

同じサービスでさまざまな機能に異なる役割を使用する方法がわかりません。0.5でどのようにしましたか?

+0

答えてくれてありがとう、パッケージングのスタッフが私の最初の懸念に答えました。私はロールの関数に関数を指し示す 'customRole'タグを使用して、さまざまな関数に異なるロールを割り当てることがありました。これは各機能上にあるため、それぞれに異なる役割を割り当てて、必要な権限のみに制限することができます – 3uPh0riC

1

私は、機能ごとに個々のiamの役割の解決策も見つけようとしていました。ドキュメントを見ているうちに、"機能ごとに別々のIAMロールをサポートしています。"this pageに追加しました。

関連する問題