2015年11月2日月曜日

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


下記ではAPI Gatewayからバックエンドの設定にLambdaを指定して、
LambdaをHTTP(S)から実行できるようにしました。
"API Gateway"のバックエンドを"Lambda"にしてJSONデータをエコーさせる
しかし、Lambda側でも"API endpoint"というものを作成して、
HTTP(S)から実行できるようにできます。

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

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


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


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


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


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

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

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

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

0 コメント: