Lambdaを作成する
マネジメントコンソールからLambdaのサービスを探します。
Lambdaのダッシュボードページで「関数の作成」をクリックします。
関数の作成ページで「設計図の使用」を選択します。
基本的な情報では、まず設計図名はpythonの「Hello world function」を選択します。
関数名を入力します。今回は「helloWorldFunction」とします。
そして実行ロールは「基本的な Lambda アクセス権限で新しいロールを作成」を選択します。
Lambda 関数のコードは変更せずに「関数の作成」をクリックします。
関数が作成され、関数のページに遷移しました。
関数の実行テストをします。テストタブをクリックして「テスト」をクリックします。
「イベント JSON」の内容がテスト時に使われるデータです。
テストが成功しました。「詳細」をクリックして内容を表示します。
今回のコードはkey1の値が返却(return)されるので”value1”が実行結果です。また、「ログ出力」ではprintで出力された内容も表示されています。
これで、Lambdaの作成は完了となります。
API Gatewayを作成する
マネジメントコンソールからAPI Gatewayのサービスを探します。
API Gatewayのページへ移動し、「APIを作成」をクリックします。
APIタイプを選択では、「REST API」を選択し、「構築」をクリックします。
「REST API を作成」の画面に遷移します。
API名を入力し、「APIを作成」をクリックします。
APIが作成され「リソース」というページに遷移します。
リソースはAPIのパスに当たる部分です。デフォルトで設定されている「/」(スラッシュ)は、APIのAPIのエンドポイント直下ということです。
「メソッドを作成」をクリックします。
「メソッドを作成」の画面に遷移します。
メソッドはリソースに対するアクションにあたります。GETやPOSTやPUT、DELETEなどがあり、「メソッドタイプ」で指定します。
そして各メソッドタイプごとに処理を指定できます。「統合タイプ」で指定します。
今回はメソッドタイプを「POST」、統合タイプを「Lambda 関数」と指定します。
「Lambda 関数」で先ほど作成した関数名「helloWorldFunction」を探して選択します。
「メソッドを作成」をクリックします。
POSTメソッドが作成され、、リソース画面に遷移しました。
APIのテストを行います。「テスト」タブをクリックします。
今回はPOSTメソッドですので、クエリ文字列は使用しません。ヘッダーも空のままで大丈夫です。
「リクエスト本文」に以下のJSONを入力します。そして「テスト」をクリックします。
{
"key1":"value1",
"key2":"value2",
"key3":"value3"
}
テストの結果が表示されました。ステータスが「200」であれば成功です。
「レスポンス本文」はLambda 関数の実行結果でkey1の値である”value1”が返ってきています。
これでテストが完了しました。
APIを公開してアクセスできるようにします。リソース画面から「API をデプロイ」をクリックします。
デプロイとはAPIのリクエスト先URL(エンドポイント)を用意する作業です。また、リソースやメソッドの追加など設定を変更した場合にはデプロイによってAPIを更新します。
ステージは「New stage」を選択して新規作成します。ステージ名は「beta」とします。
ステージとは、デプロイを行う対象でbetaやprodなど環境ごとにAPIのバージョンを分けることが可能です。
「デプロイ」をクリックします。
デプロイが完了しステージ画面に遷移します。
これでデプロイは完了です。
「URL を呼び出す」に記載されているURLがAPIのURLです。
APIの動作確認
お使いのパソコンのコンソールからcurlコマンドで確認してみます。
curlコマンドは手軽にHTTPリクエストを行えるコマンドでPOSTリクエストも行えます。
「-d」で指定しているのはPOSTリクエストのJSONです。
$ curl -d '{"key1":"value1","key2":"value2","key3":"value3"}' [APIのURL]
"value1”が表示されたら成功です。