JAWS−UG サーバーレスクイックスタート
先日仕事帰りに[JAWS−UG初心者支部]の90分でサーバーレスの基本をクイックで学ぶハンズオン勉強会に参加しましたので簡単にまとめて記載しました。
ハンズオンの前提条件が、ハンズオン用のAWSアカウントを持っていることだったので事前にAWS個人用アカウントを作成し、AWSサービス操作権限のある IAMユーザーでログインできるか確認も済ませました。
下記は勉強会のアジェンダです。
”サーバーレス”とは何か?何が嬉しいのか?
ハンズオン1:AWSLambdaで日=>英翻訳する
ハンズオン2:翻訳Web APIを作る
ハンズオン3:文字起こし+翻訳パイプラインを作る
”サーバーレス”とは何か?何が嬉しいのか?
ハンズオン1:AWSLambdaで日=>英翻訳する
Lambda Functionを作成し、”Hello World” と表示する
・IAMユーザーでログイン後、東京リージョン、日本語を選択。
・AWS Lambda画面でLambda Functionを作成
ソースの7行目を修正し、保存ボタンで保存後、テストボタンクリックすると、ゲブにログが出力される。
Lambda Functionを修正し、Amazon Translateと連携する
・Lambda Function画面の下の方にスクロールし、「xxxロールを表示」をクリック(IAMロールの画面が別タブで開く)
・「ポリシーをアタッチします」をクリック
・検索窓にtranslateと入力し、TranslateFullAccessの方にチェックを入れる
・その後、右下の「ポリシーのアタッチ」をクリック
・Lambda画面に戻りソースコードを下記のURLのように修正する
https://github.com/ketancho/aws-serverless-quick-start-hands-on/blob/master/src/translate-function.py
・修正後、保存、テスト
ハンズのオン2:翻訳Web APIを作る
Amazon API Gateway の特徴
・サーバーのプロビジョニングや管理なしでAPIを作成・管理できるマネージメントサービス
・可溶性の担保、スケーリングなどのAPI管理で必要なことをAPI Gatewayに任せる
・料金体系はリクエストベース(REST APIの場合)
Amazon API Gateway とAWS Lambdaを組み合わせて外部から叩けるWeb APIを作る
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ガクリックされる。
ハンズオン3:文字起こし+翻訳パイプラインを作る
Amazon Transcribe 特徴
音声をテキストに変換する文字起こしサービス
AWS Lambda とAmazon Transcribe を組み合えあせて、音声データを文字起こしするパイプラインを作る
下記のパケットを作成
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 ロールを表示をクリック
・「ポリシーをアタッチします」をクリック
ソースコードを下記のリンクのように修正し、保存
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バケットでアップロードをクリックしアップする
・サービス -> transcribeと入力 > Amazon Transcribeを選択
・左上のハンバーガーメニュークリック > Transcription jobsをクリック
・Job StatusがInprogressであることを確認し、Completeになるまで待つ
感想:
ハンズオンでしかも数名のチューターがいて、質問すると丁寧に指導して頂けて短時間で効率良い勉強ができて良かったです。