从docker映像向lambda公开处理程序函数

byqmnocz  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(269)

我正在尝试构建一个hello world示例,其中docker映像为lambda函数提供动力。
我的docker图像中包含一个npm项目,如下所示:

project
│   app.js
|   Dockerfile
|   package.json
|   package-lock.json

app.js中的代码是:

// app.js
module.exports.lambdaHandler = async (event, context) => {
  console.log('Code Running Inside Handler Function');
  console.log(event);
  console.log(context);
  return "Hello World.";
}

我在docker文件中使用此cmd层对我的应用程序进行dockerize:

CMD [ "app.lambdaHandler" ]

我将docker映像上传到aws,并尝试将其作为lambda函数运行。但是,我得到以下运行时错误:
找不到模块“/project/app.lambdahandler”
我该如何向aws披露“lambdahandler”?
编辑以包含我的docker文件:

FROM node:16

COPY app.js ./

CMD [ "app.lambdaHandler" ]
y3bcpkx1

y3bcpkx11#

当使用aws lambda容器的自定义映像时,必须执行一些步骤来为lambda环境做好准备。其中包括:
安装运行时接口客户端。
设置entrypoint属性以调用运行时接口客户端。
但最简单的方法是使用aws提供的基础图像。

相关问题