AWS活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、「AWS Lambda」を使って「Amazon S3」にアップロードしたCSVを「Amazon DynamoDB」に自動登録する方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、「AWS Lambda」を使って「Amazon S3」にアップロードしたCSVファイルを「Amazon DynamoDB」に自動登録する方法を紹介します。
DynamoDBは、メンテナンスや管理、運用、スケーリングをAWSが行うフルマネージドNoSQLデータベースサービスです。主なユースケースとして、Webやスマホアプリのユーザー情報、セッション情報の管理、広告やゲームのユーザー行動履歴管理などがあります。
このDynamoDBを利用しているとたびたび出くわすのが「CSV形式のデータを一括でDynamoDBテーブルに取り込みたい」というシーンです。こちらの実現方法として、今回はLambdaとS3を利用します。
今回行うDynamoDBへのCSV登録は図1のような構成です。
下記の手順に沿って作業します。
DynamoDBコンソールから「テーブルの作成」をクリックしてテーブル作成画面(図2)に遷移し、次の通りに値を設定します。
ソートキーの指定は任意なので今回は省略し、その他の設定もデフォルトのままで「テーブルの作成」をクリックします。
数十秒〜数分でテーブルの作成が完了しステータスが「Active」になっていることを確認できます。
今度はS3ダッシュボードに遷移し、任意の名前を入力し、「バケットの作成」ボタンでS3バケットを作成します。
バケットの作成が完了したらDynamoDBにインポートするCSVファイルをアップロードします。
作成したバケット名をクリックし、「アップロード」ボタンでファイルをアップロードします。
本稿でアップロードした「employee.csv」は次のような内容です。
1,杉本,男,営業部 2,徳永,男,人事部 3,北田,女,システム部 4,赤松,女,システム部 5,志賀,男,総務部 6,藤原,女,システム部
Lambda関数の実行に必要となるIAMロールを作成します。
IAMダッシュボードから「ロール」→「ロールの作成」とクリックして遷移した画面で、次のように選択して「次のステップ:アクセス権限」に進みます。
IAMロールにアタッチするIAMポリシーは、以下のAWS管理ポリシーとユーザー管理ポリシーを指定します。
ユーザー管理ポリシーは自分で作成する必要があります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "dynamodb:PutItem", "dynamodb:BatchWriteItem" ] } ] }
最後にロール名を指定して「ロールの作成」をクリックすれば、ステップ3は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.