docker 使用自定义容器映像在本地测试AWS lambda

yyyllmsg  于 2023-04-05  发布在  Docker
关注(0)|答案(1)|浏览(136)

我正在尝试使用自定义容器镜像来测试新添加的feature运行/调用lambda,因此我正在从AWSpython:3.8基础镜像构建一个非常简单的镜像,如下所示:

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

COPY myfunction.py ./

CMD ["myfunction.py"]

这里是myfunction.py

import json
import sys

def lambda_handler(event, context):
    print("Hello AWS!")
    print("event = {}".format(event))
    return {
        'statusCode': 200,
    }

我的问题是:我的构建完成后:

docker build --tag custom .

我现在如何调用我的lambda,假设我没有公开任何web端点,并假设我成功地旋转了我的自定义容器,(尽管handler=部分在我是否正确配置了处理程序方面有点令人不安)

▶ docker run -p 9000:8080 -it custom
INFO[0000] exec '/var/runtime/bootstrap' (cwd=/var/task, handler=)

一个简单的 curl 当然失败

▶ curl -XGET http://localhost:9000                                                                                                                                                                       
404 page not found
dojqjjoe

dojqjjoe1#

结果我不得不调用这个极其不直观的url

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

但是我仍然得到这个错误

WARN[0149] Cannot list external agents                   error="open /opt/extensions: no such file or directory"
START RequestId: f681b2ca-5e35-499d-a262-dd7bc53912f0 Version: $LATEST
Traceback (most recent call last):andler 'py' missing on module 'myfunction'
END RequestId: f681b2ca-5e35-499d-a262-dd7bc53912f0
REPORT RequestId: f681b2ca-5e35-499d-a262-dd7bc53912f0  Init Duration: 1.08 ms  Duration: 248.05 ms     Billed Duration: 300 ms    Memory Size: 3008 MB    Max Memory Used: 3008 MB

edit:通过将CMD

CMD ["myfunction.py"]

CMD ["myfunction.lambda_handler"]

相关问题