AWSサーバレスアーキテクチャーNo4:Lambda + API Gateway
AWSのホームページの初心者ハンズオンにある「サーバーレスアーキテクチャで翻訳 Web API を構築する 」の内容を自分のAWSアカウントでやってみました。
前回投稿の API-Gateway を実装した続きで、4パート目です。
ざっくりと基本構成を図で表してみて、この中で DynamoDB を省いた構成です。
Lambda + API Gateway 設定の手順
入力した日本語を英語に翻訳するAPIを作成する
- /translate リソースを作成し、GET メソッドを作成する
- 統合タイプとして Lambda 関数を選択する
- プロキシ統合を設定し、Input / Output をパススルーする
- メソッドリクエストでクエリパラメータの設定
- Lambda 関数を修正する
- Lambda 関数をテストする
- API をデプロイする
- API を叩いてみる(結果は返ってくるか)
No3で行った環境を直していきます。それでは設定していきましょう!
検索窓「API」から「API Gateway」をクリック
リソース名を「translate」と入力
「リソースの作成」をクリック
統合タイプとして Lambda 関数を選択し、 「translate-function」 を指定。
「Lambda プロキシ統合の使用」にチェック
「保存」をクリック
▶ URLクエリ文字列パラメータ
を展開し、
「クエリ文字列の追加」をクリック
「input_text」を入力して、
✔ をクリック
「メソッドの実行」をクリック
「必須」をチェック
「コード」タブで「APCall」をクリック→「Test」
出力「Hello」と、
「 “isBase64Encoded”: false,」
「”headers”: {}」
を確認できる。
先ほどの「dev」のままで「デプロイ」をクリック
エラーとなるが、クエリ・ストリングが指定されていないのが原因なので
/dev/translate?input_text=こんばんは
と指定すると「Good evening」とレスポンスされる。
今回は、 Lambda + API Gateway :日本語を英語に翻訳するAPI の構成でした。
次回は、翻訳履歴を蓄積するDynamoDBをセットアップします。