LoginSignup
3
1

More than 3 years have passed since last update.

AWS Lambda で 日⇨英翻訳する

Posted at

AWS初心者のものです。
昨日JAWS-初心者支部にて

1.AWS Lambda で 日⇨英翻訳する
2.翻訳 Web APIを作る
3.文字起こし+翻訳パイプラインを作る

のハンズオン3本立てを実施していただきました。

今回は「1.AWS Lambda で 日⇨英翻訳する」をアウトプットをしていきたいと思います。

そもそもLambdaとは

⇨AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。料金は、コンピューティングに使用した時間に対してのみ発生します。(公式サイト参照)

え?

理解するのに時間がかかりました。。。

僕みたいな初心者の方にわかりやくす説明するとしたら、

アプリケーション実行時には
-WindowsやLinuxの環境を構築
-Webサーバ・APサーバ・DBサーバのインストール・環境構築

が発生していました。

この手間を無くしてくれたのが救世主Lambda様。
初心者がつまずきやすい環境構築を取っ払ってくれました。

※EC2とLambda結局どっちがいいの?⇨一長一短あるみたいなので適材適所で利用するのが良いみたいです!

概要を理解できたところで早速本題へ移っていきましょう。

1.Lambda functionを作成し、"Hello World!"を表示する

Lambdaのコンソールに行っていただいて

画面右上にある「関数の作成」をクリック
スクリーンショット 2020-02-20 15.47.35.png

オプション:「一から作成」
関数名:「translate-function」
ランタイム:「Python3.8」
⇨「関数の作成」をクリック

スクリーンショット 2020-02-20 15.49.56.png

無事作成できましだでしょうか?
できたらこのポップアップが出現します。
スクリーンショット 2020-02-20 15.55.57.png

作成したら少し下にスクロールして
「関数コード」の欄にコードがあります。

コードの「"Hello from Lambda"」⇨「"Hello World"」へ修正してみましょう!
スクリーンショット 2020-02-20 16.00.46.png

スクリーンショット 2020-02-20 16.03.47.png
修正したら右上の「保存」を忘れずに!

右上の「テスト」をクリック
スクリーンショット 2020-02-20 16.07.08.png

テストイベントの設定で
イベント名:「Test」とし、「作成」をクリック。
スクリーンショット 2020-02-20 16.08.02.png

もう一回「テスト」をクリックしてみてください!
スクリーンショット 2020-02-20 16.09.57.png

少しわかりづらいですが「Hello World!」が表示されてれば成功です!

2.Lambda functionを修正し、Amazon Translateと連携する!

先ほど作成したLambda functionの下部へスクロールし、実行ロール欄の「※※※※ロールを表示」をクリック!
ポリシーをアタッチしていきます! ※おそらく別タブが開きます
スクリーンショット 2020-02-20 16.19.53.png

「ポリシーをアタッチします」をクリック
⇨検索窓で「translate」⇨「TranslateFullAccess」にチェックをいれ、「ポリシーのアタッチ」をクリック。
スクリーンショット 2020-02-20 16.24.47.png
スクリーンショット 2020-02-20 16.25.05.png

Lambdaコンソールを開いてるタブへいき、ソースコードを修正していきます!
※AWS SDK for Python (boto3) のソースコードを利用しております。

 import json 
 import boto3

 def lambda_handler(event, context): 

     translate = boto3.client('translate') 
     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 
         }) 
     } 

スクリーンショット 2020-02-20 16.44.31.png
「保存」⇨「テスト」
スクリーンショット 2020-02-20 16.46.49.png

またわかりづらいですが翻訳結果が出ていれば成功です!

テキストを変更して遊んでみます!
「愛してる」
スクリーンショット 2020-02-20 16.50.44.png
おお〜〜〜

じゃ、カタカナは?と思い。
「アイシテル」
スクリーンショット 2020-02-20 16.51.22.png

カタカナは流石にダメでした。笑

Lambdaについて理解できていませんでしたが、ハンズオンを通し、少しは理解できたと思います。
実務的なテクニカルな部分については理解しておりませんが、これから理解していけるように勉強していきます!

ありがとうございました!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1