7

I would like to run serverless offline using a Lambda function that points to a Docker image.

When I try to run serverless offline, I am just receiving:

Offline [http for lambda] listening on http://localhost:3002
Function names exposed for local invocation by aws-sdk:
           * hello-function: sample-app3-dev-hello-function

If I try to access http://localhost:3002/hello, a 404 error is returned


serverless.yml

service: sample-app3
frameworkVersion: '3'

plugins:
  - serverless-offline

provider:
  name: aws
  ecr:
    images:
      sampleapp3image:
        path: ./app/
        platform: linux/amd64

functions:
  hello-function:
    image:
      name: sampleapp3image
    events:
      - httpApi:
          path: /hello
          method: GET

app/myfunction.py

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': 'Hello World!'
    }

app/Dockerfile

FROM public.ecr.aws/lambda/python:3.9

COPY myfunction.py ./

CMD ["myfunction.lambda_handler"]

2 Answers 2

2

at the moment such functionality is not supported in serverless-offline plugin. There's an issue open where the discussion started around supporting this use case: https://github.com/dherault/serverless-offline/issues/1324

Sign up to request clarification or add additional context in comments.

Comments

2

I had the same issue.

Fixed adding --host 0.0.0.0 when running serverless offline in the docker container.

sls offline --stage dev --host 0.0.0.0

1 Comment

I spent hours trying to make that work thinking there was something wrong with my docker side config... this solution finally worked! thank you

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.