下記では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ごとに必ず別れてしまうっていデメリット(?)もありますが…