2016-06-27 10 views
3

AWS Labmda + API Gatewayを使用してサーバーレスのシステムを構築したいのですが、ここではいくつかのパブリックAPIと他のAPIを使用します(すべてLambda関数で実装されます)。ノードJS)。AWSでLambdaを使用した内部APIを作成

私の質問は、外部の世界には公開されず、いくつかのラムダ機能にしか公開されない内部APIを作成する方法に特有です。

ゲートウェイで定義されているすべてのAPIが公開されていることはわかっています。 APIの呼び出し元を、自分自身で認識されたAWSリソース(特にLambda関数)からのみ管理するにはどうすればよいですか?

私は、ラムダ関数を直接APIゲートウェイ経由で呼び出すことはできないと考えています。これはもちろん動作しますが、ここでの欠点は、実装をAWSに結合する一方で、ノードマイクロサービスを構築してREST APIを介して互いに呼び出すソリューションを取得しようとしていることです。

ありがとうございました。文書化hereとして

答えて

4

、認証タイプのため、 認可の設定]領域で、メソッドに独自のアクセス許可を割り当て、[編集]を選択し、 は、その後AWS_IAMを選択します。正しいIAMポリシー を持つIAMロールだけがこのメソッドを呼び出すことができます。

次に、それらのプライベートAPIゲートウェイメソッドの呼び出しを許可するために、ラムダ関数に適切なIAMロールを割り当てるだけで済みます。

+2

ありがとうございました。これをもっと慎重に読むことで、単純なHTTPSリクエストにするのは簡単ではないことがわかります。なぜなら、AWS SDKを使用しないと、リクエストを認証するためにかなりの作業が必要になるからです(http:// docs .aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。私は、AWSがこれを内部的に取ることを望んでいました。私は、内部API Gatewayが私にとってここですごくうまくいったと思います(しかし、残念ながら存在しません)。 – Shaish

+0

このアプローチでは、内部コールに対して、コストが発生します。任意のアイデアを最小化する方法? – Hammer

+1

@Hammerこの質問はコストに関するものではありませんでした。 APIゲートウェイに関する特定の質問がある場合は、別の質問としてそれを求めます。 –

関連する問題