下記ではAPI Gatewayからバックエンドの設定にLambdaを指定して、LambdaをHTTP(S)から実行できるようにしました。

"API Gateway"のバックエンドを"Lambda"にしてJSONデータをエコーさせる

しかし、Lambda側でも"API endpoint"というものを作成して、HTTP(S)から実行できるようにできます。

といっても結局API Gatewayと連携させてるだけなので、結果としては上述した方法と同じことをしていることになります。

具体的な方法は下記となります。

2015-11-02_03-30-12

“API endpoint type”に”API Gateway”を選択します。(それしかありませんが…)
(“Security”はデフォルトがIAMでしたが、要件的にOpenにしています)

2015-11-02_03-31-47

作成すると”API endpoint URL”(API Gateway)が発行されます。

2015-11-02_03-35-09

実際に、API Gatewayの方でも確認してみると、上記で作成したものが表示されています。

2015-11-02_04-33-15

ちなみにLambda側の”API endpoint”を削除しても、API Gateway側は残ってました。

で、じゃあ、どっちの方法で行うべきか?って話になると思いますが、自分的には、Lambdaの”API endpoint”の方で行なった方がいいかなー、と思ってます。

なぜなら、API Gatewayの方で行うと、Lambdaの”API endpoint”には何も表示されず、そのLambdaがどこから実行されるかが、わかりにくくなってしまうからです。

まあ、API GatewayのリソースがLambdaごとに必ず別れてしまうっていデメリット(?)もありますが…

元記事はこちら

Lambdaの”API endpoint”を作成してみた