AWSサーバレスアーキテクチャーNo2:Lambda + Amazon Translate
AWSのホームページの初心者ハンズオンにある「サーバーレスアーキテクチャで翻訳 Web API を構築する 」の内容を自分のAWSアカウントでやってみました。
前回投稿のLambda単体でログ機能を実装した続きで、2パート目です。
ざっくりと基本構成を図で表してみて、Lambda、Translate だけの構成です。( API-Gateway と DynamoDBを省いた)

それでは、前回の環境から引き続き設定していきます。今回は Amazon Translate と連携してみます。
Lambdaサービスの画面に遷移します。
translate-function (前回作成)のコードを変更する


Python SDK のドキュメントを⾒ながら、Translate の呼び出し⽅を実装する
import json
import boto3
translate = boto3.client('translate')
def lambda_handler(event, context):
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
})
}
Lambda関数のIAMロール修正

IAMダッシュボードのロール画面に飛ぶ

「translate」で絞って、「TranslateFullAccess」をチェック → 「ポリシーのアタッチ」をクリック


translate-function 画面に戻る

サービスを選択すると、下部にその詳細が出てきます。


Lambda 関数をテスト実行する


「Good morning」が出力されている。
今回は、Lambda から Amazon Translate を組み合わせてみました。
次回は、Amazon API Gateway だけの構成です。