LoginSignup
0
2

More than 3 years have passed since last update.

JAWS−UG サーバーレスクイックスタート

Last updated at Posted at 2020-02-25

JAWS−UG サーバーレスクイックスタート

先日仕事帰りに[JAWS−UG初心者支部]の90分でサーバーレスの基本をクイックで学ぶハンズオン勉強会に参加しましたので簡単にまとめて記載しました。

ハンズオンの前提条件が、ハンズオン用のAWSアカウントを持っていることだったので事前にAWS個人用アカウントを作成し、AWSサービス操作権限のある IAMユーザーでログインできるか確認も済ませました。

下記は勉強会のアジェンダです。

”サーバーレス”とは何か?何が嬉しいのか?
ハンズオン1:AWSLambdaで日=>英翻訳する
ハンズオン2:翻訳Web APIを作る
ハンズオン3:文字起こし+翻訳パイプラインを作る

”サーバーレス”とは何か?何が嬉しいのか?

スクリーンショット 2020-02-25 17.56.48.png
スクリーンショット 2020-02-25 17.57.30.png

ハンズオン1:AWSLambdaで日=>英翻訳する

スクリーンショット 2020-02-25 17.58.04.png
スクリーンショット 2020-02-25 17.58.35.png

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

・IAMユーザーでログイン後、東京リージョン、日本語を選択。
・AWS Lambda画面でLambda Functionを作成
スクリーンショット 2020-02-25 17.59.49.png
ソースの7行目を修正し、保存ボタンで保存後、テストボタンクリックすると、ゲブにログが出力される。
スクリーンショット 2020-02-25 18.00.41.png

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

スクリーンショット 2020-02-25 18.06.43.png
・Lambda Function画面の下の方にスクロールし、「xxxロールを表示」をクリック(IAMロールの画面が別タブで開く)
・「ポリシーをアタッチします」をクリック
・検索窓にtranslateと入力し、TranslateFullAccessの方にチェックを入れる
スクリーンショット 2020-02-25 18.07.33.png
・その後、右下の「ポリシーのアタッチ」をクリック
・Lambda画面に戻りソースコードを下記のURLのように修正する
https://github.com/ketancho/aws-serverless-quick-start-hands-on/blob/master/src/translate-function.py
・修正後、保存、テスト
スクリーンショット 2020-02-25 18.09.28.png

ハンズのオン2:翻訳Web APIを作る

Amazon API Gateway の特徴

・サーバーのプロビジョニングや管理なしでAPIを作成・管理できるマネージメントサービス
・可溶性の担保、スケーリングなどのAPI管理で必要なことをAPI Gatewayに任せる
・料金体系はリクエストベース(REST APIの場合)
スクリーンショット 2020-02-25 18.10.00.png
Amazon API Gateway とAWS Lambdaを組み合わせて外部から叩けるWeb APIを作る
スクリーンショット 2020-02-25 18.10.25.png

Lambda Functionソースの修正

下記のリンクのソースのように、input_textの部分をAPI Gatewayから渡される、クエリストリンクパラメータを受け取る形に修正→保存
https://github.com/ketancho/aws-serverless-quick-start-hands-on/blob/master/src/translate-function-with-apigw.py
・API Gateway画面の下部に遷移し、REST APIの「構築」ボタンをクリック
・プロトコルはRESTのまま、新しいAPIを選択し、API名をtranslate-apiとし、API作成
・アクションタブから「リソースの作成」を選択し、リソース名をtranslateとし、リソース作成
・/translateが選ばれている状態で、アクションタブから「メソッドの作成」を選択し、
/translateのプルダウンから「GET」を選択、☑️をクリックしてメソッドの作成
・「Lambdaプロキシ統合の使用」を☑️した後、Lambda関数にtranslate-function を指定し、保存をクリック
・アクションタブから「APIデプロイ」を選択し、デプロイされるステージは「新しいステージ」を選択し、
ステージ名に「dev」と入力し、デプロイをクリック
・左側のメニューで「ステージ」を選び、「dev」をクリック するとURLガクリックされる。
スクリーンショット 2020-02-25 18.11.35.png

ハンズオン3:文字起こし+翻訳パイプラインを作る

Amazon Transcribe 特徴

音声をテキストに変換する文字起こしサービス
AWS Lambda とAmazon Transcribe を組み合えあせて、音声データを文字起こしするパイプラインを作る
スクリーンショット 2020-02-25 18.14.47.png
下記のパケットを作成
yyyymmdd-transcribe-input-yourname
yyyymmdd-transcribe-output-yourname

・AWS Lambdaの画面へ:サービス > lambdaと入力 > Lambdaを選択 > 関数を作成
・設計図の使用 >検索窓にS3と入力し、Enter
・s3-get-object-pythonを選択肢、右下の設定をクリック
・Function 名: transcribe-function, Role名: transcribe-function-roleとし
・S3トリガーの対象なるバケットを指定(inputの方を選択)
・トリガーの有効化に☑️し、「関数の作成」ボタンクリック
・IAMロールを修正:Lambda Function の下部から xxx ロールを表示をクリック
・「ポリシーをアタッチします」をクリック
スクリーンショット 2020-02-25 18.15.31.png
ソースコードを下記のリンクのように修正し、保存
https://github.com/ketancho/aws-serverless-quick-start-hands-on/blob/master/src/transcribe-function.py

下記リンクより音声ファイルをダウンロードする
https://d1.awsstatic.com/product-marketing/Polly/HelloEnglish-Joanna.0aa7a6dc7f1de9ac48769f366c6f447f9051db57.mp3

S3にmp3ファイルをアップロードする。input側のS3バケットでアップロードをクリックしアップする
スクリーンショット 2020-02-25 18.15.31.png
・サービス -> transcribeと入力 > Amazon Transcribeを選択
・左上のハンバーガーメニュークリック > Transcription jobsをクリック
・Job StatusがInprogressであることを確認し、Completeになるまで待つ
スクリーンショット 2020-02-25 18.17.17.png
スクリーンショット 2020-02-25 18.17.39.png

感想:
ハンズオンでしかも数名のチューターがいて、質問すると丁寧に指導して頂けて短時間で効率良い勉強ができて良かったです。

0
2
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
0
2