LoginSignup
4
2
はじめての記事投稿
Qiita Engineer Festa20242024年7月17日まで開催中!

AWSサーバーレスで問い合わせの仕組みを作る(APIGateway・DynamoDB)

Posted at

AWSやらサーバーレスやら、これまでエアプで人に話してきた。
営業寄りの仕事だったからそれでよかった。八百屋はトマトの育て方を知らなくてもトマトを売れる。

でも、重い腰を上げてイチから作ることにした。
技術寄りのマネージャーを目指すことにしたからだ。

つくるもの

  • Webサイトの問い合わせフォームをデータベースに保存する
  • フォームは名前とメールアドレス・問い合わせ内容のみ
  • Webサーバーとか意識したくない。サーバーレスでつくる

へんに複雑にせず、シンプルに。
実務で使うならもっとごちゃごちゃとするが、学習のためには単純な仕組みを理解することから。

問い合わせ内容の一覧表示をしたくなるが、そちらは次回。

仕組み

フォーム送信時にAPIをコール。入力内容をDynamoDBに保存する。

image.png

APIGateway から直接 DynamoDB へデータ保存する。

できたもの

一応、目的は達成できた。

問い合わせフォーム
image.png

DynamoDBの保存結果
image.png

フロント部分はほぼChatGPTにお願いして作った。
自分で変更したのはAPIコールと若干のパラメータをいじっただけ。
大変に効率がよい。ただし、手ごたえがなく地力を身に着けた感じがしないのが悩みどころ。

悩んだ点

とにかくAPIGatewayの設定がよく分からない

image.png

「メソッド」「統合」「リクエスト」・・・。単語レベルでは意味が分かるが、これらがどんな役割なのか理解していないことが分かった。

さらに「マッピングテンプレート」という謎の機能で1時間悩んだ。
後述する参考記事など見ながら、何とか先に進んだ。(まだ充分な理解はしていない)

デバッグの感が働かない

テスト実行すると「データが保存されないなー」「エラーが出てるなー」となる。
まったく当たりが付かず、ちょこちょこと設定を変えながら実行を繰り返してみる。

あとから考えるとエラーログの内容をちゃんと見ればよかったのだが、
エラーログ見る → エラーログでググる → 小難しい解説で思考停止
のループだった。

結局「ダブルクォーテーションが全角だった」という問題に気づき、絶望的な気持ちになる。
こういう問題解決の経験が多く、感が働くエンジニアは偉大だ。

発見など、まとめ

  • VSCodeにDraw.ioの拡張機能があった
  • エラーログをちゃんと読むことがデバッグの基本
  • エンジニアは偉大

参考にした記事

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2