AWS Lambda是一个受欢迎的函数即服务平台,可以运行简单的一次性函数。SAM(Serverless Application Model)是AWS Lambda的一种模型,可以帮助开发人员打包和部署Lambda函数。但是,SAM并不是AWS Lambda的唯一部署方式,开发人员可以使用其他方法在Lambda上部署容器。
以下是一种基于AWS CLI的Lambda容器部署方法:
准备Docker镜像并上传至ECR镜像仓库。
创建一个Lambda函数,用于存储在容器中运行的函数代码。该函数应使用支持的运行时环境。
为Lambda函数创建一个角色并授予所需的权限。创建IAM角色并为此角色分配Lambda基本执行权限和访问所需的S3存储桶和ECR镜像仓库的权限。
创建Lambda函数并将其部署为容器映像。在此示例中的命令行中,AWS Lambda功能的版本设置为$VERSION环境变量。此示例还要求使用$ CONTAINER_IMAGE环境变量指定要使用的Docker镜像。
$ export VERSION=1.0
$ export CONTAINER_IMAGE=my-ecr-repository:latest
$ aws lambda create-function \
--function-name my-lambda-function \
--role arn:aws:iam::account-id:role/lambda-role \
--package-type Image \
--code ImageUri=$CONTAINER_IMAGE \
--memory-size 512 \
--timeout 30 \
--environment Variables={VERSION=$VERSION} \
--tracing-config Mode=Active
在Lambda控制台的代码部分中,删除上载的代码,并将函数运行时更改为自定义容器。
添加Lambda函数要使用的环境变量以及任何服务器less应用程序需要使用的其他资源。