~~NOCACHE~~ ## Lambda関数の呼び出し ### はじめに API GatewayからLambda関数の出力結果(body)を取得する。 [[Aws:APIGateway:CallAPIGatewaywithJavaScript|]] ### 事前準備 #### ① Lambda関数を作成する。 [[Aws:Lambda:IssuedSignedUrlForUploadingS3Files|こちら]]で作成したLambda関数を利用する。 #### ② APIを作成する。 ##### 1.API タイプを選択 今回は、REST APIで作成します。 {{:Aws:APIGateway:pasted:20200520-203557.png?400|20200520-203557.png}} ##### 2.API 詳細設定 プロトコルをREST API、新しいAPI、エンドポイントをリージョンとして作成。 {{:Aws:APIGateway:pasted:20200520-204101.png?400|20200520-204101.png}} ##### 3.リソース、メソッドの作成 GETメソッドのみの作成としています。 統合タイプをLambda関数、リージョン、Lambda関数名を指定します。 {{:Aws:APIGateway:pasted:20200520-211719.png?400|20200520-211719.png}} ##### 4.マッピングテンプレートの設定 「GET - メソッドの実行」画面が表示されたら、統合レスポンスをクリックしマッピングテンプレートの設定をします。 {{:Aws:APIGateway:pasted:20200520-212514.png?400|20200520-212514.png}} レスポンス200の詳細[▶]を開き、赤枠の通り設定し、保存をクリックします。 [$input.json('$.body')]の設定で、Lambda関数出力結果のbody部分だけレスポンスを返すようになります。[[https://qiita.com/tamura_CD/items/ca8e531f74ea5b82a5b7|マッピングテンプレートの参考リンク]] {{:Aws:APIGateway:pasted:20200520-213143.png?400|20200520-213143.png}} {{:Aws:APIGateway:pasted:20200520-222606.png?400|20200520-222606.png}} ##### 5.CROSの有効化 API呼び出し時のCROSを有効にします。[[https://qiita.com/tanj/items/e4486f9af5d7a903117d|CROS有効化の参考リンク]] {{:Aws:APIGateway:pasted:20200520-220344.png?400|20200520-220344.png}} {{:Aws:APIGateway:pasted:20200520-220511.png?400|20200520-220511.png}} ##### 6.APIのデプロイ APIをデプロイします、ステージが表示されたらGETメソッドを選択し「URLの呼び出し」にある、URLをクリックします。 マッピングテンプレートなど変更した場合は都度デプロイを実行すること!!!実施しないと反映されません!!! {{:Aws:APIGateway:pasted:20200520-220652.png?400|20200520-220652.png}} {{:Aws:APIGateway:pasted:20200520-223324.png?400|20200520-223324.png}} ### 実行(API呼び出し)結果 下記のように表示されれば完了です。 {{:Aws:APIGateway:pasted:20200520-225423.png?400|20200520-225423.png}} [[Aws:APIGateway:CallAPIGatewaywithJavaScript|Javascriptで呼び出したサンプルはこちら]] {{tag>AWS APIGateway 実践的}}