1.はじめに
久々の投稿ですが駄文だし半分ポエムです(8ねんぶりじゃないかこれ・・・)
オンライン注文フォームを以下技術要素で作りたかったのですが、CoPxlotさんが提供してくれるサンプルが(大マジで)軒並み動かずハマったのでその話です
- AWS S3 静的Webサイトホスティング(にindex.htmlとorder.js)
- AWS API Gateway
- AWS Lambda (Runtime nodejs 18.x)
- AWS SES
実装したかったのは、ブラウザからオンライン注文フォームにアクセスして、注文項目をメール本文に転写して送ってくれる物体です
2.何にハマったのか
Lambda関数がKickするはずのSESをサッパリkickしてくれなかった
3.結局何だったのか
nodejs 16.x以前と18.X以降でコードの書き方が違っていたのでリライトが必要だった
具体的には、AWS-SDK for Javascript v2からv3に移行が必要だった
#別に実行ロールをへぼってたとかパラメータの渡し方が下手だったとかそういう話ではなかった
AWS公式のこの件に近い情報はこれ
https://repost.aws/ja/knowledge-center/lambda-send-email-ses
Qiita上の記事だとほぼドンズバはこれ
https://qiita.com/AAA0125/items/a15495a7b9e1137ef018
他にもいろいろなところでこの件に言及した情報が見つかったが、
サーバレスアーキテクチャでアプリケーション構築!という文脈ではめっちゃreachしづらかった
4.最大の学び
コケたらCloud watchを穴が開くほど見つめれ
常に何を実装したいかに回帰しれ
ハマったら確認検証範囲が小さく小さくなるように実装範囲を分解しれ
5.そのほか
- 「~すごいことが作れる~」みたいなクリップをみたけど「すぐ」作るにはハードル高いのを実感
- エンジニアとしての素養の下積みが超要る
- しかもそれをちょっとひねって亜種として再吸収した方が使いやすい
- アーンド、前提がすげー多い
- 前提はしばしば使いたいSaaSの外にある
- という苦労を突破するには、複数のサンプルコードを複数回試すとよいと思う
- 複数回ですよ!同じのを!複数回!で、別のサンプルに移ってまた複数回!
- 試している間は、前進している感じが全然ない
- が、この前進している感じがないのが恐らく肝要
- センター試験とかの点数水準アップ時の感覚に似ている(伝われ)
- すでにできる問題を繰り返し解いても一切点数アップに繋がらない
- 今できない問題に病みながら繰り返しアタックするとそのうち点数に繋がってくる
もしお読みいただいた方がいらっしゃれば、ご拝読心より深謝いたします