AWS Lambdaの関数 URL(Function URLs)を試してみた

API Gatewayを省略し、AWS Lambda のみで Web APIを作成できる 関数URL(Function URLs)を試してみました。
2022.04.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきりょうです。

2022年4月5日、AWS Lambda のアップデートでサポートされた、AWS Lambda の関数URLを試してみました。

設定

Lambdaの設定項目として、「関数URL」が追加されました。

認証タイプとして「AWS_IAM」、「NONE」の指定が可能です。

今回は「NONE」、パブリックな関数URLを作成しました。

設定した関数URLは「関数の概要」で確認可能です。

関数URLを設定した関数は、リソースベースのポリシーが追加されます。

認証タイプ「NONE」、パブリックに設定した関数は、ポリシー「FunctionURLAllowPublicAccess」が生成されました。

検証

ソース

Node.js 12.x のランタイムを利用、HTTPレスポンスコード(200)と、Body(Hello world)を戻す関数を作成しました。

console.log('Loading function');
const os = require("os");
exports.handler = async (event) => {
    return {
        statusCode: 200,
        body: 'Hello world.' + os.EOL
    };
};

実行

「curl」を利用し、パブリックに設定した関数URLの動作が確認できました。

$ curl https://xxxxxxxx.lambda-url.ap-northeast-1.on.aws -i
HTTP/1.1 200 OK
Date: Thu, 07 Apr 2022 02:29:16 GMT
Content-Type: application/json
Content-Length: 13
Connection: keep-alive
x-amzn-RequestId: xxxx-xxxx-xxxx-xxxx-xxxx
X-Amzn-Trace-Id: root=1-xxxx-xxxx;sampled=0

Hello world.

まとめ

従来、HTTP(s)経由で Lambda関数を実行するためには、API Gateway を経由する必要がありましたが、 関数 URL(Function URLs) がサポートされた事で、API Gatewayを省略した利用が可能になりました。

パブリックに公開するAPIや、簡易な認証実装でも差し支えの無いAPIを AWSLambdaで実装する場合には、今回リリースされた 関数 URL(Function URLs) をお試しください。

参考リンク