😺

[AWS Hands-on for Beginners]Serverlessのハンズオンを実際にやってみたよ(6)

2023/06/30に公開

Amazon DynamoDB ハンズオン② API Gateway と Lambda と DynamoDB を組み合わせる

それでは、このハンズオンシリーズの最後になります。
これまで作成してきたAPI GatewayLambdaDynamoDBを組み合わせていきます。

まずは、ソースコードの修正を行います。
下記を参考に、修正していきます。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/table/index.html

import json
import boto3
+import datetime

translate = boto3.client('translate')

+dynamodb_translate_history_table = boto3.resource('dynamodb').Table('translate-history')

def lambda_handler(event, context):

  input_text = event['queryStringParameters']['input_text']

  response = translate.translate_text(
    Text=input_text,
    SourceLanguageCode='ja',
      TargetLanguageCode='en',
  )

  output_text = response.get('TranslatedText')

+  dynamodb_translate_history_table.put_item(
+    Item = {
+      'timestamp': datetime.datetime.now().strftime("%Y%m%d%H%M%S"),
+      'input_text': input_text,
+      'output_text': output_text
+    }
+  )

  return {
    'statusCode': 200,
    'body': json.dumps({
      'input_text': input_text,
      'output_text': output_text
    }, ensure_ascii=False),
    'isBase64Encoded': False,
    'headers': {}
  }

次に、DynamoDBが使えるように、ロールの設定を行っていきます。
下記のURLをクリックしてください。

ポリシーをアタッチしていきます。

dynamoと入力していくと候補が絞られます。
AmazonDynamoDBFullAccessを追加していきましょう。

それでは、テストしてみましょう。

さあ、テストが実施できたので、DynamoDBに登録されているか確認してみましょう。

おおっ、できました。

では、最後に、実際にAPIを叩いてみましょうか。
API GatewayからURLをクリックしましょう。

DynamoDBの方にも、登録されていることを確認することができました。

さいごに

まずは手を動かしてみようということで、ハンズオンの通りにやってみました。
いかがだったでしょうか。
バージョンが若干更新されているので、少し戸惑いましたが、おおむね指示通りで最後まで辿り着くことができました!

さあ、最後に後片付けしちゃいましょう。

GitHubで編集を提案

Discussion