ヤマムギ

growing hard days.

*

GoogleForm,GASからAPI Gateway, Lambdaで入力情報をDynamoDBに格納する

      2021/06/12

vol.26 AWS認定試験テキスト認定クラウドプラクティショナーのデモ(DynamoDB)で、DynamoDBのテーブル作成からデータの検索などのデモをしようと思うのですが、せっかくなので参加されるみなさんにデータを作ってもらおうと思いまして、GoogleFormから連携するようにしました。

データが流れる順番で解説を書きますが、実装する際は逆順になりますのでご注意ください。

Google Apps Script

フォーム回答のGoogleスプレッドシートで[ツール]-[スクリプトエディタ]を選択しました。

名前をデフォルトから変更しました。
eventをそのまま、API Gatewayで作成したAPIへPOSTしました。

[実行]ボタンから手動で実行して権限付与しておきました。

トリガーアイコンでトリガーメニューに遷移して、[トリガーを追加]ボタンから、スプレッドシートのフォーム送信時を選択しました。

実行数メニューで実行ログを確認できました。

Amazon API Gateway

POST, GET, GET(GSI)を用意しましたが、すべてLambdaプロキシ統合を使用しました。

AWS Lambda

POSTの例

namedValuesにGoogleフォームに入力された値が配列で格納されているので必要な値を取得して、DynamoDBテーブルにPutItemしています。

GETの例

URLクエリで検索するAPIですので、queryStringParametersのキーを渡しています。
decimal型が含まれているとjson.dumpsでエラーになるので、float型に変換しています。

IndexNameで’repeat-index’グローバルセカンダリインデックス(GSI)を指定しています。

Amazon DynamoDB

デモで用意したテーブルです。

テーブル名: food
パーティションキー: id(文字列)
ソートキー: date(文字列)
ローカルセカンダリインデックス(LSI):
ソートキー: satisfaction(数字)

グローバルセカンダリインデックス(GSI):
パーティションキー: repeat

デモで必要なデータを参加されたみなさんに作っていただけると、デモデータの準備に時間を割かなくていいし、ちょっとだけ参加型のデモになってよかったです。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , , , ,

ad

ad

  関連記事

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

Amazon CloudWatch RUMはじめました

新機能 – Amazon CloudWatch RUM をご紹介 2021年12 …

CloudFrontのカスタムヘッダーがなければALBのルーティングで403レスポンスを返す

大阪リージョンにはWAFがまだないです(2021年4月現在) 今のこのブログの構 …

EC2とRDSのMySQLを他のAWSアカウントへ移設する

他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …

AWS EC2 インスタンスステータスのチェックで失敗して起動しなくなり復旧

EC2のインスタンスに接続出来なくなったので、AMIから作成してElastic …

kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)

Google Calendar Twilio Reminder Googleカレ …

AWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました

Amazon RDS と AWS Secrets Manager の統合を発表と …

AWS Service Catalogポートフォリオを他のアカウントと共有する

AWS Service Catalogチュートリアルで作成したポートフォリオの他 …

AWSクイックスタートのActive Directory Domain Services on AWS

オンプレミスに見立てたActive Directory環境がほしかったので、AW …

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …