Slide 1

Slide 1 text

API Gateway からDynamoDBを 直接操作してみた 2021/6/24 JAWS-UG 朝会

Slide 2

Slide 2 text

自己紹介 氏名 :藤田 直幸 twitter:@amarelo_n24 ※ コーヒー焙煎人兼エンジニアと名乗ってます。 職場:都内にある企業の情報セキュリティ統制担当 資格:AWS認定クラウドプラクティショナー ソリューションアーキテクトアソシエイト ※デベロッパーアソシエイトを7/2に受験予定! 好きなAWSサービス:AWS CLI、AWS CloudShell、Cloud9 好きなコーヒー :ブラジル ブルボンアマレロ

Slide 3

Slide 3 text

1.はじめに 2.今回の構成 3.設定内容 4.まとめ 話すこと

Slide 4

Slide 4 text

1.はじめに

Slide 5

Slide 5 text

先日、山下さん主催の勉強会「ヤマムギ」で実施した、 API Gatewayから直接DynamoDBに書き込む(PutItem)デモを 自分の環境で再現してみました。また、デモで学んだことを参考 にして読み取り(GetItem)もやりましたので、その話をします。 ※イベントページ https://yamamugi.connpass.com/event/213548/

Slide 6

Slide 6 text

今回は実施したことの一部のみお話しますが、 詳細な手順をZennに書きました! こちらも読んでいただけると幸いです🙇 https://zenn.dev/amarelo_n24/articles/ab083b0358e902

Slide 7

Slide 7 text

2.今回の構成

Slide 8

Slide 8 text

以下のようなシンプルな構成です。 Amazon API Gateway Amazon DynamoDB Client AWS Cloud POST GET PutItem GetItem

Slide 9

Slide 9 text

3.設定内容

Slide 10

Slide 10 text

デフォルト設定で、テーブルを一つ作成します。 ※ローカルセカンダリインデックス等の設定もなし。 (1)DynamoDB

Slide 11

Slide 11 text

API GatewayからDynamoDBに書き込みと読み取りを許可する IAMロールを作成。 (2)IAMロールの作成 AWSサービス API Gateway を選択

Slide 12

Slide 12 text

ロール作成後、インラインポリシを追加。 (2)IAMロールの作成 読み込み:GetItem 書き込み:PutItem (1)で作成したテーブルの ARNを指定

Slide 13

Slide 13 text

REST APIを作成 (3)API Gateway(PutItem)

Slide 14

Slide 14 text

POSTメソッドを作成し、統合タイプを「AWSサービス」、AWSサービスを 「DynamoDB」、アクション「PutItem」、実行ロールのARNを指定。 (3)API Gateway(PutItem) (2)で作成したロールの ARNを指定 これを選択することで AWSサービスを 操作することが可能に

Slide 15

Slide 15 text

URLクエリ文字列パラメータを追加。 (3)API Gateway(PutItem)

Slide 16

Slide 16 text

マッピングテンプレートをJSON形式に設定。 (3)API Gateway(PutItem)

Slide 17

Slide 17 text

テストしてステータスコード200が返ってきて、ログ内に入力した 文字列がJSON形式で表示されていることを確認。 (3)API Gateway(PutItem)

Slide 18

Slide 18 text

DynamoDBテーブルに書き込まれていることも確認。 (3)API Gateway(PutItem)

Slide 19

Slide 19 text

GETメソッドを作成 (4)API Gateway(GetItem) (2)で作成したロールの ARNを指定

Slide 20

Slide 20 text

URLクエリ文字列パラメータを設定(プライマリーキーのみ) (4)API Gateway(GetItem)

Slide 21

Slide 21 text

マッピングテンプレートを作成 (4)API Gateway(GetItem) Key(プライマリキー) を指定

Slide 22

Slide 22 text

テストしたところ、ステータスコード200は返ってきたが・・・ (4)API Gateway(GetItem) Not Found !?

Slide 23

Slide 23 text

GetItemはPOSTでないと動かない模様… ※理由は不明。仕様? (4)API Gateway(GetItem)

Slide 24

Slide 24 text

POSTに直してテスト再実行したら・・・ (4)API Gateway(GetItem)

Slide 25

Slide 25 text

成功😊 (4)API Gateway(GetItem)

Slide 26

Slide 26 text

4.まとめ

Slide 27

Slide 27 text

・API Gatewayから直接AWSサービスを操作することが可能。 ・今回はDynamoDBでReadWrite両方とも実施出来たことを確認。 ・GetItemを実行するのにPOSTを使う理由が分からなかった… ※ご存じの方、ご教示いただけますと幸いです🙇 まとめ

Slide 28

Slide 28 text

ポケットスタディ AWS認定デベロッパーアソシエイト https://www.shuwasystem.co.jp/book/9784798063409.html Qiita:APIGatewayから直接DynamoDBのデータを取得する https://qiita.com/foxtrackjp/items/e286b20943e99e230198 参考文献

Slide 29

Slide 29 text

No content