我正在使用CodePipeline和CodeDeploy自动执行部署过程。代码采购和docker镜像构建发生在AWS之外。我在AWS之外有一个git管道,它在代码推送时构建/打包一个docker镜像,并将docker镜像推送到ECR。
将docker镜像推送到AWS后,ECR is立即启动AWS管道并开始ECR源阶段。此阶段的输出工件不能直接传递到deploy阶段。它需要一个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文件传递到deploy阶段,以便它将镜像部署到lambda。
将CodeDeploy阶段用于lambda的原因是它支持蓝/绿部署和版本控制。
我找不到任何与lambda部署相关的文档,其中ECR充当源代码。
如果有人有什么变通办法,请告诉我。
发布于 2021-09-02 22:17:45
使用ECR作为源,您可以指定存储库和标记:
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,另一个是带有appspec的repo或bucket。
https://stackoverflow.com/questions/69008142
复制相似问题