目的
AWS外のサービスからURL形式でLambdaを呼び出せるようにAPI Gatewayの発行とLambdaの統合をしました。
前提
AWSアカウントを有しており、コンソール上で操作ができること。
やったこと
①適当なLambdaの作成
②API Gatewayの発行とLambda統合
①適当なLambdaの作成
AWSコンソール > Lambda にて関数の作成を押下します。
今回はNode.jsで適当なLambdaを作るだけなので「一から作成」とNode.jsのバージョンを選択します。
関数の作成を押下します。
関数が作成され、コードソース画面に遷移するので「Test」ボタンを押下し、適当なお名前を付けたテストイベントを作成します。
改めて「Test」したときにレスポンスが以下であればOKです。
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
②API Gatewayの発行とLambda統合
①で作ったLambdaはいったん寝かせておいて、API Gatewayを仕込みます。
AWSコンソール > API Gateway よりAPIの作成を行います。
APIタイプはHTTPを選択しました。「構築」ボタンを押下します。
さっき作ったLambdaを選択します。
API名はよしなに付けます。
「次へ」を押して設定できるルートとステージは特に何もしていません。
そのまま作成完了しました。
作成後の画面で表示される「URLを呼び出す」のリンクは罠です。そのまま飛んでもLambdaは呼び出されません。
押下すると新しいブラウザのタブが開いて以下表示されます。悲しみ。
{"message":"Not Found"}
API Gateway のルートを開いて、URLの後ろにパスを付け足して再検索してみましょう。
今回の例であれば
https:// hogehuga.execute-api.ap-northeast-1.amazonaws.com/testfunc
になります。
うまくいけば②で作ったLambdaが覚醒して画面上に以下表示されます。うれしみ。
"Hello from Lambda!"