Amazon API GateWay を使って、Lambdaで作成した関数を実行してみました。
<大まかな手順>
- AWS Lambdaで関数作成
- Amazon API GateWayで API作成
- APIを実行して、レスポンスを取得
LambdaとAPI GateWay作成のリージョンは「東京 (ap-northeast-1)」に設定して進めますので、事前にリージョンをご確認ください。
AWS Lambdaでの設定
ではさっそく始めます。
まず、Lambdaで関数を先に用意します。
Lambdaのコンソール画面にて、左側のメニューから「関数
」→「関数の作成
」ボタンをクリック。
関数作成ページが表示されるので「一から作成
」にチェック→関数名
入力→ランタイム
選択→「関数を作成
」ボタンをクリック。
例として、関数名を「testLambda」とし、ランタイムは「Node.js 12.x」を選びました。(Node.jsは全く書けないので、勝手にテンプレに期待w)
すると、下のような画面が表示されます。(テンプレコードもありますね!)
この段階で、単体テストしてみましょう。画面右上の「テスト
」ボタンクリック→イベント名
入力→「作成
」ボタンクリック。(パラメータは設定していないので、コードは書いてあるままにしても構いません)
そしたら、こんな感じになります。「関数を実行したら下記のJSONコードが返ってきたよ」ていう内容が書かれてます。
これでオッケーです!
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
Amazon API GateWayでの設定
では、次にAmazon API GateWayの方へ移りましょう。
コンソール画面を開いたら右側の「APIの作成
」ボタンクリック
左上の「HTTP API
」を選択します。
「HTTP API」は最近できた機能らしく、設定が簡単です。
設定が簡単な分、機能の制限があったりしますが今回はLambdaにつながれば十分なので、HTTPを利用します。
Step 1で
「統合の追加
」から
統合タイプ
=「Lambda」
統合ターゲット
(リージョン、Lambda関数名)=「ap-northeast-1」「testLambda」
にセットします。
API名
は、自由に入力してください。(例では「testAPI」としています)
入力後は、「Review and Create
」→「作成
」の順でボタンをクリック→
こんな画面が表示されれば、APIが作成成功です。
APIキック
「URLを呼び出す」項目のURL/{Lambda関数名}
でAPIを叩いて作成したLambda関数を実行することができます。
Statusコードが200で返ってきているので成功ですね!
$ curl https://xxxxxx.execute-api.ap-northeast-1.amazonaws.com/testLambda
StatusCode : 200
StatusDescription : OK
Content : "Hello from Lambda!"
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
X-Amzn-Requestid: xxxxxxxxx=
Content-Length: 20
Content-Type: application/json
Date: Fri, 31 Jan 2020 07:38:00 GMT
"Hello from Lambda!"
Forms : {}
Headers : {[Connection, keep-alive], [X-Amzn-Requestid, HJ7l5iHDIAMEAAQ=], [Content-Length, 20], [Content-Typ
e, application/json]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 20
ブラウザで実行するとこんな感じです。(ブラウザでは URL/{Lambda関数名}
をURLに指定すれば、応答が返ってきます。
以上です!