とっても些細なことで、6時間詰まったので共有です。
結論
Lambda 関数 URL で PUT メソッドまたは POST メソッドを使用する場合、ユーザーはリクエストを CloudFront に送信するときにリクエスト本文の SHA256 を計算し、本文のペイロードハッシュ値を x-amz-content-sha256 ヘッダーに含める必要があります。Lambda は、署名されていないペイロードをサポートしていません。
経緯
とあるひ、Cloud Front から、Lambda Function URLにPOSTリクエストを飛ばしました。
あれれ...。うまくいかない。
なんで GETは通るのに...。
Cloud Front => Lambda(Lambda Web Adaptor(Next.JS SSR Streaming)) の複雑な構成且つ、APIルート側のAPIを叩いていたので、Cloud Frontの OAC周りの設定が怪しいなと思っていたのですが....。
なんのことはない、リクエストの仕方の問題でした😭
不精して、直接 Lambda Function URL を叩いてチェックしなかったのがよくなかったですね...。
さいごに
でも、わかってよかったw
同じところで引っかかってる方に届いたら嬉しいです。(もしかして僕だけ?)