はじめに
2022年4月頃からAWS LambdaでHTTP通信が可能になった!!今まで、RESTAPIを作ろうとすると、API Gateway + Lambdaで作らなくてはいけなかった。しかし、サービスアップデートにより、Lambdaから直接叩けるようになった。(感動)。LambdaでAPIを作った事がある人ならば、何でAPIGateWayわざわざ用意しないとHTTP通信できないんだ??っていうのは誰もが感じてた事。ようやく、その不満から解消することができるようになったようなので、今回触ってみることにした。
所感
めっちゃ簡単。GUIのぽちぽちで1分で関数が作れるのがいい感じ。FunctionURlsという機能をONにすることでHTTP通信ができるようになっているようだ。ただ、色々と縛りがあるので、用途に合わせて利用するのが良さそうだ。本番環境で利用するには時期尚早って感じかな。
Hands-onスタート
→はい、HTTP通信できました!!!超簡単。1分で関数が作れるのは嬉しいな!!!
コラム: APIGateWay+Lambdaのパターンは発生する??
HTTP通信のためにAPIGatewayを利用していた。今回のアップデートでLambdaがHTTP通信対応するようになったが、API Gateway+Lambdaのパターンは発生するのか?その疑問に対して、いい感じの表があったので、添付しておく。出典:ServerlessFramework
【考察】
・料金の順番はLambda(FunctionURL)>API Gateway(HTTP)>API Gateway(REST)。やはり、API Gatewayを利用しない分、当然のことながら安い。ただ、100万リクエストで3.5ドル程度なので、考慮に値しないほどの差しかない。
・ドメインのカスタムがFunctionURLではできない。これはなかなかネックかな。独自ドメインを付与できないとドメインの管理がなかなか面倒になる。
・Cachingが効かない。まぁ、当たり前か。
・CloudWatchのaccessログが出ない???ほんま???これはきついなぁ。。
・timeoutの制限が大幅増加(29秒→15分)。これ嬉しい??そもそも1分超えるようなリクエストをHTTP通信でやることがアンチパターンだから、恩恵はほぼない気がする。