AWSサーバレスアーキテクチャーNo2:Lambda + Amazon Translate
AWSのホームページの初心者ハンズオンにある「サーバーレスアーキテクチャで翻訳 Web API を構築する 」の内容を自分のAWSアカウントでやってみました。
前回投稿のLambda単体でログ機能を実装した続きで、2パート目です。
ざっくりと基本構成を図で表してみて、Lambda、Translate だけの構成です。( API-Gateway と DynamoDBを省いた)
![](https://mikolabo.net/wp-content/uploads/2021/12/Lambda2-1.png)
それでは、前回の環境から引き続き設定していきます。今回は Amazon Translate と連携してみます。
Lambdaサービスの画面に遷移します。
translate-function (前回作成)のコードを変更する
![](https://mikolabo.net/wp-content/uploads/2021/12/Lambda1.png)
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi1-1024x225.png)
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ロール修正
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi6-1024x316.png)
IAMダッシュボードのロール画面に飛ぶ
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi7-1024x616.png)
「translate」で絞って、「TranslateFullAccess」をチェック → 「ポリシーのアタッチ」をクリック
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi8-1024x286.png)
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi9-1024x628.png)
translate-function 画面に戻る
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi10-776x1024.png)
サービスを選択すると、下部にその詳細が出てきます。
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi12.png)
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi13.png)
Lambda 関数をテスト実行する
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi14-1024x759.png)
![](https://mikolabo.net/wp-content/uploads/2021/12/LambdaAi15-1024x692.png)
「Good morning」が出力されている。
今回は、Lambda から Amazon Translate を組み合わせてみました。
次回は、Amazon API Gateway だけの構成です。