我正在寻找一个完整的往返示例:1.创建一个自定义的docker镜像(lambda将使用-我有一个工作的Dockerfile)1.将映像推送到AWS容器注册表1.手动调用AWS lambda,从AWS容器注册表中提取映像(并示例化容器)1.并调用容器中将运行的任务(特定的bash脚本)1.然后在容器运行后释放所有资源(容器被移除,lambda完成)这可能吗?有什么例子吗?
bmp9r5qi1#
我设法以这种方式部署了一个Lambda来示例化Docker容器:0.确保您的PC上安装了Docker Desktop并正在运行(https://docs.docker.com/engine/install/)1.通过在终端中运行aws configure来设置您的AWS帐户凭据2.准备一个python脚本,名为main.py。在脚本中包含一个输出函数,如下所示:
aws configure
def lambda_handler(event, context): <your code here> responseBody = <some output from your code> return { "statusCode": 200, "body": responseBody }
3.准备一个你需要在容器中安装的python模块的列表,并把它们放在一个名为requirements.txt的文件中4.准备一个SAM模板,名为template.yaml,格式类似于:
Transform: 'AWS::Serverless-2016-10-31' Description: An AWS Serverless Specification template for deploying lambda functions using a Docker container image Resources: Function: Type: 'AWS::Serverless::Function' Properties: FunctionName: <lambda function name> Description: <description about lambda function> PackageType: Image Timeout: 60 Metadata: Dockerfile: Dockerfile DockerContext: .
(有关lambda函数可能需要的其他属性列表,请参阅https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html。)5.准备一个类似格式的Dockerfile:
FROM public.ecr.aws/lambda/python:3.7 WORKDIR /app COPY main.py . COPY requirements.txt . RUN pip install -r requirements.txt CMD [ "/app/main.lambda_handler" ]
1.在终端中,运行sam build -u来构建Docker镜像。1.在终端中,运行sam deploy -g,然后按照屏幕上的步骤生成名为samconfig.toml的配置文件,并将lambda函数和ECR Docker镜像部署到AWS。1.部署完成后,您可以在AWS站点上的Lambda控制台中测试新的lambda函数。由于lambda函数已部署为容器镜像,因此每次调用时都会示例化Docker容器。
sam build -u
sam deploy -g
1条答案
按热度按时间bmp9r5qi1#
我设法以这种方式部署了一个Lambda来示例化Docker容器:
0.确保您的PC上安装了Docker Desktop并正在运行(https://docs.docker.com/engine/install/)
1.通过在终端中运行
aws configure
来设置您的AWS帐户凭据2.准备一个python脚本,名为main.py。在脚本中包含一个输出函数,如下所示:
3.准备一个你需要在容器中安装的python模块的列表,并把它们放在一个名为requirements.txt的文件中
4.准备一个SAM模板,名为template.yaml,格式类似于:
(有关lambda函数可能需要的其他属性列表,请参阅https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html。)
5.准备一个类似格式的Dockerfile:
1.在终端中,运行
sam build -u
来构建Docker镜像。1.在终端中,运行
sam deploy -g
,然后按照屏幕上的步骤生成名为samconfig.toml的配置文件,并将lambda函数和ECR Docker镜像部署到AWS。1.部署完成后,您可以在AWS站点上的Lambda控制台中测试新的lambda函数。由于lambda函数已部署为容器镜像,因此每次调用时都会示例化Docker容器。