[AWS]JAWSサーバレスハンズオン勉強会参加報告①

JAWSさん開催の勉強会に参加してきました!

今までAWSってなんとなくクラウドサーバーなんだろうな〜って感じだったんですが、今回の勉強会に参加したことで、こんなこともできるの!?って驚きました!

少しでも共有できたらと思います。

結構長くなりそうなので3回に分けて書いていきたいと思います。

何を行なったのか?

今回の勉強会は"AWS Lambdaを使用してサーバーレスを体験しよう"という題目でした。

実際に手を動かして、以下の物を作成しました。

1. 日→英翻訳する機能を作成する

2. 日→英翻訳Web APIを作成する

3. 英語音声データから文字起こしをを行う機能を実装する

普通にやばくないですか??しかも90分で作ります笑

今回は日→英翻訳する機能を作成した内容を書きます。

Lambda Functionを作成し、"Hello World"を表示する

お決まりのHello WorldをLambdaで表示させます。

初サーバーレス。。。。

まずマネジメントコンソールでLamdaを検索する

スクリーンショット 2020-02-19 23.59.07

次に表示された画面の左側の"関数"をクリックしてオレンジボタンの"関数を作成"をクリックします。

スクリーンショット 2020-02-20 0.03.17

一から作成を選択

スクリーンショット 2020-02-20 0.05.37

基本的な情報を入力していきます。

関数名はなんでもいいですが、今回はtranslate-funcとします。

ランタイムはPython 3.8を選択してください。

関数の作成をクリック。

スクリーンショット 2020-02-20 0.08.01

下にスクロールするとソースコードがあるので、そこのHello from Lambda!を好きな文字に変えます。

スクリーンショット 2020-02-20 0.12.23

そして右上の保存をクリックしてテストをクリック。

そうするとテストイベントの設定モーダルが開きます。

スクリーンショット 2020-02-20 0.14.04

どうやらここの”イベントテンプレート”から他のAWSサービスからの呼び出し時のevent(コードのLambda handlerの引数)情報をシミュレートできるみたいなのですが、今はわからないのでHello Worldで続けます。

イベント名はTestとかで作成します。

もう一度テストをクリックしましょう。

すると以下のようなログが出力されます!Hello Worldです!

スクリーンショット 2020-02-20 0.19.30

Lambda Functionを修正し、Amazon Translateと連携する

Amazon Translateという翻訳サービスがあるみたいで、これとLambdaを連携させて日→英翻訳機能を実装していきます。

先ほどの画面で下にスクロールすると実行ロールの項目があります。

その最下部に

スクリーンショット 2020-02-20 0.23.35

こんな感じの記述があるので、クリックします。

スクリーンショット 2020-02-20 0.26.01

ポリシーをアタッチをクリック。

検索窓にtranslateと入力してTranslateFullAccessにチェック入れます。


スクリーンショット 2020-02-20 0.29.33

そしてポリシーのアタッチをクリックします。

これを行うことでLambda FunctionのIAMロールを修正することができます。

Lambda画面に戻って以下のコードに変更します。

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
       })
   }

このコードの

    ・
    ・
def lambda_handler(event, context):

   translate = boto3.client('translate')
   input_text = '順調ですか?'
    ・
    ・

"順調ですか?"の部分が英語に翻訳されます。
自由に変えてみてください。

保存を押してテストを実行しましょう。

スクリーンショット 2020-02-20 0.35.25

英訳されています!!

以上が第一回目の内容となります。

次回はこれをAPIにしていきます。

この記事が気に入ったらサポートをしてみませんか?