この記事は公開されてから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) をお試しください。