AWSは先ごろ、Lambda Function URL の一般提供を発表した。開発者が他のサービスをプロビジョニングすることなく、Lambda Function の HTTPS エンドポイントと CORS ヘッダを直接構成できる機能だ。
新機能により、開発者は Amazon API Gateway や Application Load Balancer に Lambda Function を HTTP 呼び出しにマッピングすることを回避できる。各 Function の URL はグローバルに一意になり、Function のエイリアスまたは Function の ARN に関連付けることができ、暗黙的には最新バージョンを呼び出す。AWS のプリンシパルデベロッパーアドボケイトである Alex Casalboni 氏は、新機能の使用で役立つシナリオを説明している:
Function URL は、リクエストの検証、スロットリング、カスタムオーソライザ、カスタムドメイン名、使用計画、 キャッシングを必要としない公開エンドポイントの単一 Function マイクロサービスを実装するユースケースには最適です。たとえば、Webhook ハンドラ、フォームバリデータ、モバイル支払い処理、広告の配置、機械学習の推論などを実装する場合です。
発表をレビューした Datadog のサーバレスエンジニアリングリーダの AJ Stuyvenberg 氏は付け加えている:
これらは、Mono-Lambda API、Service to Service 通信、軽量 Webhook などの重要なケースで役立ちます。数回のイテレーションで、Function URL がさらに良くなる可能性があり、HTTP ベースの Lambda 呼び出しのデフォルトの統合メカニズムになる可能性があると思います。
出典: https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
この発表は、Hacker News と Reddit で多くのコメントを引き起こし、一部のユーザはソリューションのシンプルさを評価し、別のユーザはカスタムドメインのサポートが無いことや制限された認証オプションを強調している。XING のシニアインフラストラクチャエンジニアである Ebi Mirsafian 氏は、Lambda URL は「100% サーバレスの方向への大きなイネーブラ」であると考えているが、cloudandthings.io のテクニカルディレクタである Paul Zietsman 氏は次のようにコメントしている:
特にオーソライザがないことで、なぜこれが存在するのか理解に苦しみます。
サーバレスの HTTP エンドポイントをサポートしているクラウドプロバイダは Amazon だけではない。Google Cloud Functions と Azure Functions も同様の機能を提供している。クラウドセキュリティコンサルタントの Scott Piper 氏が報告したように、この新機能は昨年11月にAWSコンソールに数時間表示されたため、大きな驚きではなかった:
API Gateway を使用せずに Lambda をインターネットに直接公開する機能が SDK に追加されたようです。
著名な投稿では Swipe iX のシニアクラウドデベロッパのである Rehan van der Merwe 氏が、新機能のメリットと価格を要約している:
Lambda URL - 100万リクエスト当たりの料金:
- Rest API (最初の 333 mil) = $3.5
- HTTP API (最初の 300 mil) = $1.0
- Lambda URL = Free
- CloudFront proxying to Lambda URL = ~ $1.0 to $1.2Lambda URL - タイムアウト (秒):
- Rest API = 29
- HTTP API = 30
- Lambda URL = 900 (15 分)
- CloudFront proxying to Lambda URL = 60 (デフォルト)
Function URL は、Lambda API で使用可能で、CloudFormation、AWS SAM、および AWS CDK でサポートされている。これは Lambda のリクエストと使用時間の料金に含まれ、中国を除いた Lambda がサポートされているすべてのリージョンで一般利用が可能になっている。