AWSやらサーバーレスやら、これまでエアプで人に話してきた。
営業寄りの仕事だったからそれでよかった。八百屋はトマトの育て方を知らなくてもトマトを売れる。
でも、重い腰を上げてイチから作ることにした。
技術寄りのマネージャーを目指すことにしたからだ。
つくるもの
- Webサイトの問い合わせフォームをデータベースに保存する
- フォームは名前とメールアドレス・問い合わせ内容のみ
- Webサーバーとか意識したくない。サーバーレスでつくる
へんに複雑にせず、シンプルに。
実務で使うならもっとごちゃごちゃとするが、学習のためには単純な仕組みを理解することから。
問い合わせ内容の一覧表示をしたくなるが、そちらは次回。
仕組み
フォーム送信時にAPIをコール。入力内容をDynamoDBに保存する。
APIGateway から直接 DynamoDB へデータ保存する。
できたもの
一応、目的は達成できた。
フロント部分はほぼChatGPTにお願いして作った。
自分で変更したのはAPIコールと若干のパラメータをいじっただけ。
大変に効率がよい。ただし、手ごたえがなく地力を身に着けた感じがしないのが悩みどころ。
悩んだ点
とにかくAPIGatewayの設定がよく分からない
「メソッド」「統合」「リクエスト」・・・。単語レベルでは意味が分かるが、これらがどんな役割なのか理解していないことが分かった。
さらに「マッピングテンプレート」という謎の機能で1時間悩んだ。
後述する参考記事など見ながら、何とか先に進んだ。(まだ充分な理解はしていない)
デバッグ勘が働かない
テスト実行すると「データが保存されないなー」「エラーが出てるなー」となる。
まったく当たりが付かず、ちょこちょこと設定を変えながら実行を繰り返してみる。
あとから考えるとエラーログの内容をちゃんと見ればよかったのだが、
エラーログ見る → エラーログでググる → 小難しい解説で思考停止
のループだった。
結局「ダブルクォーテーションが全角だった」という問題に気づき、絶望的な気持ちになる。
こういう問題解決の経験が多く、勘が働くエンジニアは偉大だ。
発見など、まとめ
- VSCodeにDraw.ioの拡張機能があった
- エラーログをちゃんと読むことがデバッグの基本
- エンジニアは偉大
参考にした記事