下面是一个比较 AWS Lambda 容器镜像支持与 Fargate 的解决方法,并包含代码示例:
AWS Lambda 容器镜像支持:
FROM public.ecr.aws/lambda/python:3.8
COPY app.py requirements.txt ./
RUN python3.8 -m pip install -r requirements.txt
CMD ["app.lambda_handler"]
docker build -t my-lambda-image .
docker tag my-lambda-image:latest .dkr.ecr..amazonaws.com/my-lambda-image:latest
docker push .dkr.ecr..amazonaws.com/my-lambda-image:latest
AWS Fargate:
{
"family": "my-fargate-task",
"taskRoleArn": "arn:aws:iam::123456789012:role/my-fargate-task-role",
"executionRoleArn": "arn:aws:iam::123456789012:role/my-fargate-execution-role",
"networkMode": "awsvpc",
"containerDefinitions": [
{
"name": "my-fargate-container",
"image": ".dkr.ecr..amazonaws.com/my-fargate-image:latest",
"cpu": 256,
"memory": 512,
"portMappings": [
{
"containerPort": 8080,
"hostPort": 8080
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/my-fargate-task",
"awslogs-region": "",
"awslogs-stream-prefix": "my-fargate-container"
}
}
}
]
}
aws ecs create-cluster --cluster-name my-fargate-cluster
aws ecs create-service --service-name my-fargate-service --cluster my-fargate-cluster --task-definition my-fargate-task --desired-count 1
这将在 Fargate 上创建一个任务,并运行容器镜像。
综上所述,这是一个使用 AWS Lambda 容器镜像和 AWS Fargate 运行容器的比较,并包含了相关的代码示例。