【问题标题】:Using container image for Lamda function为 Lambda 函数使用容器映像
【发布时间】:2022-01-22 12:06:12
【问题描述】:

我想在本地测试一个非常简单的 Lambda 函数。

app.py

def lambda_handler(event, context):
    return "hello"

Dockerfile

FROM public.ecr.aws/lambda/python:3.8
COPY app.py .
CMD [ "app.lambda_handler" ] 

在我构建我的图像之后

docker build -t hello-world-3 .

我无法在本地运行它:

docker run -p 9000:8080 -it hello-world-3

[INFO] (rapid) exec '/var/runtime/bootstrap' (cwd=/var/task, handler=)

如何在本地调用我的图像?它在 AWS 上作为 Lambda 函数运行良好。

【问题讨论】:

    标签: python docker lambda


    【解决方案1】:

    使用hello-world-3 映像启动容器后,您只需从主机(在另一个终端上)运行curl 命令即可访问公开的特定端点:

    curl -X POST http://localhost:9000/2015-03-31/functions/function/invocations -d '{}'
    

    您可以在此处的文档末尾找到:https://hub.docker.com/r/amazon/aws-lambda-python,或者也可以在此处找到:https://docs.aws.amazon.com/lambda/latest/dg/images-test.html#images-test-AWSbase

    调用您的容器后,您应该会在启动该容器的终端中看到您的请求。例如:

    START RequestId: da204eb4-7ff2-4382-85fb-44a01166194b Version: $LATEST
    END RequestId: da204eb4-7ff2-4382-85fb-44a01166194b
    REPORT RequestId: da204eb4-7ff2-4382-85fb-44a01166194b  Duration: 0.71 ms       Billed Duration: 1 ms   Memory Size: 3008 MB    Max Memory Used: 3008 MB
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2021-08-01
      • 2021-09-06
      • 2021-06-30
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      相关资源
      最近更新 更多