8

それを指す AWS API Gateway エンドポイントを設定することにより、AWS Lambda 関数をパブリック HTTP リクエストに公開しています。

これには 2 つの部分があります。

  • AWS Lambda 関数を作成してアップロードする
  • HTTP エンドポイントが Lambda 関数を指すように API Gateway を設定する

Web インターフェイスの代わりに API 呼び出しを使用して、両方の部分を実行したいと考えています。AWS SDK と AWS CLI を使用して、最初の部分でそれを行うことができます。

しかし、第 2 部では行き詰まっています。AWS SDK for node.jsまたはAWS CLIを調べたときに、API Gateway についての言及が見つかりませんでした。

AWS API をプログラムで使用して、Lambda 関数の API Gateway エンドポイントを設定する方法はありますか?

4

4 に答える 4

8

はい、AWS の API を介して、AWS Lambda 関数用に Amazon API Gateway エンドポイントを設定することができます。

Node.js および AWS CLI の AWS SDK for JavaScript はまだ Amazon API Gateway をサポートしていませんが、公式の SDK なしでAmazon API Gateway REST APIを使用してそれらをセットアップできます。この場合、おそらく次の API を使用します。

  1. restapi:作成
  2. リソース:作成
  3. メソッド:置く
  4. 統合:置く
  5. 統合応答:プット
  6. メソッド応答:put

サードパーティのライブラリを使用して、Amazon API Gateway を AWS Lambda ( jaws-stack/JAWSr7kamura/fluctなど) と統合することをお勧めします。

于 2015-08-16T15:33:19.407 に答える
3

はい・・・絶対にありえます。以下は、node.js 用の AWS-SDK を使用する node.js コードです。メソッドの統合のために、ここで POST を実行しています。ここで、必要なものがいくつかあります。これが役に立てば幸いです...頑張ってください!

ゲートウェイ API に使用しているメソッドの ResourceId

ゲートウェイ API レスト ID

Lambda 関数を呼び出すことができる Invoke Role の ARN

統合する Lambda 関数の ARN。

var AWS = require('aws-sdk');

api = new AWS.APIGateway(); 

var params = {
    httpMethod: 'POST',
    resourceId: [YOUR RESOURCE ID],
    restApiId: [YOUR REST API ID],
    type: 'AWS',
    uri: [YOUR LAMBDA FUNCTION ARN],
    integrationHttpMethod: 'POST',
    credentials : [YOUR INVOKE ROLE ARN]
};

api.putIntegration(params, function (err, data) {
    if (err) {
        console.log('AWS Error', err);
    } else {
        console.log('Put Integration Method Created', data);
    }
});
于 2016-02-20T01:30:04.207 に答える
0

API エンドポイントを Lambda 関数に向けることができます。API Gateway で新しい HTTP メソッドを作成するときに、[統合タイプ] を [Lambda 関数] として選択し、呼び出す必要がある Lambda 関数を選択します。

主な課題は、API 入力パラメーターを Lambda モデル オブジェクトにマッピングすることです。マッピングを手動で定義するか、モデル スキーマを提供できます ( json-schemaを使用)。

マッピング例:

{
    "firstname" : "$input.params('firstname')",
    "lastname"  : "$input.params('lastname')"
}

Java 8 用に書かれた段階的なチュートリアルについては、このブログ投稿を参照してください。

于 2016-02-25T14:48:26.833 に答える