😺
[AWS Hands-on for Beginners]Serverlessのハンズオンを実際にやってみたよ(6)
Amazon DynamoDB ハンズオン② API Gateway と Lambda と DynamoDB を組み合わせる
それでは、このハンズオンシリーズの最後になります。
これまで作成してきたAPI Gateway
、Lambda
、DynamoDB
を組み合わせていきます。
まずは、ソースコードの修正を行います。
下記を参考に、修正していきます。
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の方にも、登録されていることを確認することができました。
さいごに
まずは手を動かしてみようということで、ハンズオンの通りにやってみました。
いかがだったでしょうか。
バージョンが若干更新されているので、少し戸惑いましたが、おおむね指示通りで最後まで辿り着くことができました!
さあ、最後に後片付けしちゃいましょう。
Discussion