Пару недель назад AWS выкатил поддержку CloudFront OAC для Lambda function URLs, чтобы можно было удобно ходить в приватные Лямбды.
Сначала все обрадовались, полезное дело, безопасности, все дела, но после выяснилось, что работают лишь GET запросы, а на POST/PUT отдаётся ошибка.
Потом все расстроились, потому что зря обрадовались — ведь это не фича, а баг.
Но один хороший человек упоролся и выяснил, что если посчитать SHA256 хэш и добавить его в заголовок
x-amz-content-sha256, то и POST/PUT тоже работают.https://twitter.com/rooToTheZ/status/1788606025265975505
Он написал запрос на обновление AWS документации для CloudFront и теперь там:
ℹ️ Note
If you use PUT or POST methods with your Lambda function URL, your user must provide a signed payload to CloudFront. Lambda doesn't support unsigned payloads.
В итоге расстроились и те, кто обрадовался, когда другие расстроились, потому что рано обрадовались.
Какая же здесь мораль? Документация — важна. Грамотно задокументированный баг всегда можно сделать фичей.
#CloudFront #Lambda