サーバーレスアーキテクチャで翻訳Web APIを構築する②
前回
下記ハンズオンを参照
Amazon API Gateway ハンズオン② API GatewayとLambdaを組み合わせる
Amazon API GatewayとAWS Lambdaを使用し、日本語を英語に翻訳するWeb APIを作成する。
構成図
Lambda関数の作成
マネジメントコンソールからlambdaを検索。
"関数の作成"をクリック。
「一から作成」を選択。
関数名を入力し、ランタイムを「python3.12」を選択。
右下の"関数の作成"クリック。
少し時間が経って画面が遷移する。
コードの編集
「コード」タブを選択。
下記コードに書き換える。
import json
import boto3
translate = boto3.client(service_name='translate')
def lambda_handler(event, context):
input_text = event['queryStringParameters']['input_text']
response = translate.translate_text(
Text=input_text,
SourceLanguageCode="ja",
TargetLanguageCode="en"
)
output_text = response.get('TranslatedText')
return {
'statusCode': 200,
'body': json.dumps({
'output_text': output_text
}),
'isBase64Encoded': False,
'headers': {}
}
書き換えた後"Deploy"をクリックしてコードを更新する。
IAM ロールを追加
「設定」タブの「アクセス権限」を選択。
「実行ロール」の「ロール名」クリック。
「許可を追加」を選択して"ポリシーをアタッチ"をクリック。
検索してTranslateFullAccess
を選択。
"許可を追加"をクリック。
APIを作成する
マネジメントコンソールからAPI Gatewayを検索。
REST APIの"構築"をクリック。
新しいAPIを選択。
API名を入力後、"APIを作成"をクリック。
/translateリソースを作成し、GETメソッドを作成する
"リソースを作成"をクリック。
リソース名を入力後"リソースを作成"をクリック。
「/translate」を選択し、"メソッドを作成"をクリック。
メソッドタイプ"GET"、統合タイプ"Lambda関数"選択。
「Lambdaプロキシ統合」をチェック。
「Lambda関数」で作成済みのLambda関数を指定。
"メソッドを作成"をクリック。
メソッドリクエストでクエリパラメータの設定
メソッドリクエストを選択し、"編集"をクリック。
「URLクエリ文字列パラメータ」を展開して"クエリ文字列を追加"をクリック。
名前を入力し、「必須」にチェックを入れ、"保存"をクリック。
APIのデプロイ
"APIをデプロイ"をクリック。
前回作成した「dev」を選択。
※作成していない場合「新しいステージ」を選択してステージ名を入力して"デプロイ"をクリック。
APIを叩く
「dev」を展開して「GET」を選択。
URLをコピーする。
/translate以下にクエリパラメータを入力してAPIを呼び出す。
/dev/translate?input_text=翻訳する日本語
次回
Discussion