使用ECR映像作为源的AWS Lambda CodeDeploy



我使用CodePipeline和CodeDeploy来自动化部署过程。代码源和docker映像构建发生在AWS之外。我在AWS之外有一个git管道,它在代码推送上构建/打包docker镜像,并将docker镜像推送到ECR。

一旦docker映像被推送到AWS, ECR就会启动AWS管道并启动ECR源阶段。此阶段的输出工件不能直接传递到部署阶段。需要一个AppSpec文件。

{
"version": "0.0",
"Resources": [
{
"awscodestar-gateway-api-lambda-HelloWorld": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Name": "awscodestar-gateway-api-lambda-HelloWorld",
"Alias": "live",
"CurrentVersion": "3",
"TargetVersion": "4"
}
}
}
]
}

我不知道如何将Docker映像URL和AppSpec文件传递到部署阶段,以便将映像部署到lambda。

为lambda使用CodeDeploy阶段的原因是它支持蓝/绿部署和版本控制。

我找不到任何与lambda部署相关的文档,其中ECR作为源。

请告诉我,如果有人有任何解决办法。

使用ECR作为源代码指定repo和标签:

Name: Source
Actions:
- InputArtifacts: []
ActionTypeId:
Version: '1'
Owner: AWS
Category: Source
Provider: ECR
OutputArtifacts:
- Name: SourceArtifact
RunOrder: 1
Configuration:
ImageTag: latest
RepositoryName: my-image-repo
Name: ImageSource

所以你已经知道docker镜像的URL。

管道可以有多个源阶段(https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-multi-input-output.html),所以一个可以是ECR,另一个可以是repo或bucket。

最新更新