aws / aws-lambda-runtime-interface-emulator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

curl: (52) Empty reply from server

rking788 opened this issue · comments

commented

I recently ran into an issue trying to test a Lambda function locally with the provided base images. My handler is written in Go. Testing with both public.ecr.aws/lambda/go:1 and public.ecr.aws/lambda/provided:al2 gives the same error when attempting to curl the handler locally.

Here are the directions I was attempting to follow to test my function locally. https://gallery.ecr.aws/lambda/go (the Usage tab)

I ended up here after finding this workaround: #26. It's my understanding that these steps shouldn't be needed when working with one of the provided Docker images. If there is a better repository to file this issue please let me know. Thanks.

For al2, after many false starts, I copied the executable to the bootstrap location, ignoring the task root stuff and it works.


FROM public.ecr.aws/lambda/provided:al2 as build
# install compiler
RUN yum install -y golang
RUN go env -w GOPROXY=direct
# cache dependencies
ADD go.mod go.sum ./
RUN go mod download
# build
ADD . .
RUN go build -o /bootstrap
# copy artifacts to a clean image
FROM public.ecr.aws/lambda/provided:al2
COPY --from=build /bootstrap ${LAMBDA_RUNTIME_DIR}/bootstrap
CMD [ "main" ]

the same happens with images such as public.ecr.aws/lambda/nodejs:18 despite following the instructions in the usage tab