ローカルでLambda Function URLを想定してLambdaを開発する時、
Lambdaへのリクエスト内容からリクエストペイロードの形式のリクエストボディに変換して大元のLambdaに再送し、
返ってきたレスポンスペイロードの形式であるレスポンスから実際のHTTPレスポンスに変換するためのプロキシとなるコンテナです。
docker build -t lambda-function-url-proxy .でイメージをビルドしておく。- Lambda側のプロジェクト(docker-composeを使う想定)で設定を行う。
- curl等で動作確認する。
例えばaws-lambda-rieとawslambdaricを使う場合、以下のようにdocker-compose.ymlを書くと良いです。
services:
lambda:
・・・
ports:
- :8080 # lambda側はポートをホストマシンに公開する必要は無い
lambda-func-url-proxy:
image: lambda-function-url-proxy
ports:
- 9000:80 # ホストマシン側にポートを公開
environment:
- LAMBDA_REQUEST_URL=http://lambda:8080/2015-03-31/functions/function/invocations # ホストはlambda, ポートはlambda側のポートこの場合、例えば
curl -i -XPOST 'http://localhost:9000/hoge' -d '{"hoge":"huga"}' -H 'Content-Type: application/json'で動作確認出来ます。
あくまでローカル環境用です。本番環境等では使わない方が良いでしょう。