Héc*_*tor 3 amazon-web-services docker aws-lambda aws-api-gateway amazon-ecr
我创建了这个 lambda 函数:
exports.lambdaHandler = async event => {
const body =
message: "Hello"
};
return {
statusCode: 200,
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(body)
};
};
Run Code Online (Sandbox Code Playgroud)
我使用以下 Dockerfile 创建了一个 Docker 映像:
FROM amazon/aws-lambda-nodejs:12
COPY app.js package*.json ./
RUN npm install
CMD [ "app.lambdaHandler" ]
Run Code Online (Sandbox Code Playgroud)
我已将其推送至 ECR。现在,我想创建一个运行它的 lambda 函数。
我尝试过使用这个命令:
aws lambda create-function --function-name greeting --role arn:aws:iam::xxxxxxxxxxxx:role/my-role --code ImageUri=xxxxxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com/greeting:latest
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
调用CreateFunction操作时发生错误(InvalidParameterValueException):Runtime和Handler是使用部署包创建的函数的强制参数。
这是没有意义的,因为它是一个基于 Docker 镜像的 lambda 函数,因此不需要参数。
Men*_*hak 10
这似乎对我有用。您需要删除处理程序、运行时并确保将包类型指定为 Image,并且
aws lambda create-function \
--function-name greeting \
--role arn:aws:iam::xxxxxxxxxxx:role/my-role \
--code ImageUri=xxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/greeting:latest \
--package-type Image
Run Code Online (Sandbox Code Playgroud)
(AWS CLI 版本 2.1.7)
| 归档时间: |
|
| 查看次数: |
2975 次 |
| 最近记录: |