はじめに
本記事は以下記事の続編です。
気が付いたらマネジメントコンソールのUIが変わっていました。
やってみた
まずは、マネジメントコンソールからLambdaのページに移動します。
「AWS Lambdaを単体で動かしてみた」で作成したLambda関数(translate-function)を開きます。
以下のページを参考に、Lambda関数を修正していきます。
以下画像の赤枠部分をコピーします。
import boto3は既にLambda関数に記述されているためコピーしません。
貼り付けたコードを以下のように修正します。
テーブルに直接アクセスするコードを1行でまとめています。
dynamodb_translate_history_tbl = boto3.resource('dynamodb').Table('translate-history')
先程のページ(Boto3 documentation)に戻り、下にスクロールして「put_item」をクリックします。
色々なSyntaxが記載されていますが、今回参考にするのは2-4行目のItemの箇所です。
↓3行目のコード
(タイムスタンプを取得するためのPythonモジュールをインポートしています。)
import datetime
↓21-27行目のコード
(DynamoDBにタイムスタンプ、入力文、出力文を追加するコードです。)
dynamodb_translate_history_tbl.put_item(
Item = {
'timestamp': datetime.datetime.now().strftime("%Y%m%d%H%M%S"),
'input_text': input_text,
'output_text': output_text
}
)
修正後、左側のDeployボタンをクリックします。
クリック後、以下のようなメッセージが表示されます。
Lambda関数のIAMロールにdynamoDBへのアクセス権限が付与されていないので、付与します。
「設定」→「アクセス権限」→ロール名をクリックします。
「dynamodb」を検索し、「AmazonDynamoDBFullAccess」にチェックを入れ、「許可を追加」をクリックします。
本来であれば必要最低限の権限に絞るべきではあります。
Lambdaのページに戻り、「テスト」タブをクリックします。
テストイベントを修正します。
8行目の元々「こんにちは」だった箇所を「こんばんは」に修正します。
成功しました。「Good evening」と表示されています。
DynamoDBに履歴が残っているか確認してみます。
DynamoDBのページに移動し、「項目を探索」→「translate-history」をクリックします。
すると、先ほどの履歴(青枠箇所)が入ってます。
次はAPIの動作を確認してみます。
API-Gatewayのページを開き、「Amazon API GatewayでMock APIを作ってみた」で作成したtranslate-apiを開きます。
「ステージ」→「GET」→URLをコピーします。
コピーしたURLをブラウザのURL入力欄に貼り付けます。
"?"移行を入力します。
「ハンズオン完走しました」の部分は英語にした好きな日本語を入力します。
入力後、Enterを叩きます。
英語に変換されたテキストが出力されました。
おわりに
ちょっと時間がかかってしまいましたが、無事にハンズオンを終えることができました。
今後もやったことの足跡を付けていこうと思います!