miyohideの日記

技術的なメモなどを記しています

2023年7月1日

AWSハンズオン

ちょっと本腰を入れてAWSのお勉強。まずは簡単な初心者向けハンズオンから。

aws.amazon.com

Lambda周りをおさらい。まずは翻訳APIのものをRubyで実装。

require 'json'
require 'logger'
require 'date'
require 'aws-sdk-core'
require 'aws-sdk-translate'
require 'aws-sdk-dynamodb'

def lambda_handler(event:, context:)
    logger = Logger.new($stdout)

    logger.info(event)

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

    logger.info(input_text)

    translate_client = Aws::Translate::Client.new
    response = translate_client.translate_text({
        text: input_text,
        source_language_code: "ja",
        target_language_code: "en"
    })

    dynamodb_client = Aws::DynamoDB::Client.new

    dynamodb_client.put_item({
        item: {
            "timestamp": Time.now.strftime("%Y%m%d%H%M%S"),
            "input_text": input_text,
            "output_text": response.translated_text
        },
        table_name: "translate-history"
    })

    { statusCode: 200,
      body: JSON.generate({output_text: response.translated_text}),
      isBase64Encoded: false,
      headers: {}
      }
end