サーバーレスな構成でリクエスト/レスポンスのサーバーを構築する場合、API Gateway+Lambda+DBのような構成が一般的です。
この方法だと、API Gatewayを構築する必要があるため、AWS初心や簡単なPoCを作りたい人にとっては、少しネックになっていたと思います。
しかし!API Gatewayを使わずに簡単にLambdaを実行できる「AWS Lambda Function URLs」が最近リリースされました。
今回はAWS Lambda Function URLsを使ったHTTPSから実行する方法についてご紹介します。
Lambda Function URLsとは?
Lambda Function URLsとは、Lambdaに直接HTTPSエンドポイントを追加して、Webフックのように使うことができるアップデート機能です。
AWSコンソールからLambdaで適当な関数の設定を見てみましょう。
関数URLという項目が新しくできています。
そもそも「Lambdaって何?」という人は、以下のページを参考にしてね。
Lambda Function URLsは何が嬉しいのか?
Lambda Function URLsの嬉しいポイントとしては、以下が挙げられます。
- API Gatewayを設定する必要なく、WebやアプリからLambdaを実行できる
- APIとして実行時間の上限を、API Gatewayの上限時間29秒より長く設定できる
- Lambdaの上限時間が15分のため、最大15分をタイムアウトとできる
- レスポンスヘッダーへのcookie追加や、CORS有効化も設定できる
個人的にはAPIのタイムアウトを29秒以上に設定できるのが、非常に嬉しい!通常の処理だと29秒以下に収まるように設計していますが、どうしても長くなってしまう処理(特に削除系)はありますよね・・・
Lambda Function URLsの使い方
まずAWSコンソールからLambdaサービスを選択して、対象の関数を開きます。
設定→関数URLで「関数URLを作成」をクリックします。
認証タイプはとりあえずNONEを選択しました。
もしAWS Signatureなどを利用してIAM認証できる場合は、AWS_IAMを選択しても構いません。
以上の設定で保存を押すと、もう関数URLができました。
Lambda Function URLsの注意事項
Lambda Fucntion URLsを使う場合の注意事項です。
- 送信元IPアドレスを制限したいなどのセキュリティ設定ができない
- 2022年8月現在、WAFではLambda Function URLsを設定できない。やるなら、API Gatewayを使いましょう。
- IAM認証にした場合、AWS Signatureを利用してHTTPリクエストに署名する必要がある
- 任意のURL名が設定できない
- その他、API Gatewayの高度な機能が使えない
- リクエストの検証、スロットリング、カスタムオーソライザー、使用プラン、キャッシュなど
単純にAPI Gatewayからの置き換えにはならないですね。現状のAPI Gatewayから見直しする場合は、API Gatewayでどのような機能を使っているか確認してから、移行を検討しましょう。
AWSをイチから学ぶなら「RaiseTech」
また、クラウドサービスでトップシェアのAWSの技術を身につけてスキルアップや転職を考えているなら、「RaiseTech(レイズテック)」がオススメです。
現場で使われる技術にフォーカスして、ほかスクールにはない圧倒的なサポートをしてもらえるので、短期集中で環境構築、自動化、DevOpsなどのAWS技術を身に着けることができます。
「RaiseTech」とAWS認定での資格取得によるスキルアップで、もう一段上のエンジニアへステップアップしましょう!
また、AWSで人工知能(AI)もやりたいと考えている人は、完全オンラインのプログラミングスクール「Aidemy」もおすすめだよ。
まとめ
今回は、AWS Lambda Function URLsを使ったHTTPSから実行する方法についてご紹介しました。
PoC開発でLambdaを触ってみている人は、簡単にWebアプリなどが作成できますので是非使ってみましょう。
コメント