GeK*_*eKo 1 amazon-ecs blue-green-deployment aws-code-deploy aws-codepipeline aws-codebuild
我想创建一个 CodePipeline,它从 CodeCommit 源构建一个容器映像,然后以蓝/绿方式将新映像部署到我的 ECS 服务(EC2 启动类型)。
问题出在 BuildArtifact 的图像定义上。管道在部署阶段失败并出现错误:
"" 尝试从工件中读取图像工件文件时出现无效的操作配置异常:BuildArtifact。“”
如何正确配置“Amazon ECS(蓝/绿)”部署阶段,以便它可以使用最近创建的映像并部署它....通过替换 taskdef.json 中的占位符 IMAGE_NAME ?
任何提示高度赞赏:D
在这里回答我自己的问题,希望它可以帮助面临同样情况的其他人。
- printf '{"ImageURI":"%s"}' $REPOSITORY_URI:$IMAGE_TAG > imageDetail.json
artifacts:
files:
- 'image*.json'
- 'appspec.yaml'
- 'taskdef.json'
secondary-artifacts:
DefinitionArtifact:
files:
- appspec.yaml
- taskdef.json
ImageArtifact:
files:
- imageDetail.json
Run Code Online (Sandbox Code Playgroud)
确保您的 appspec.yaml 包含任务定义的占位符。这是我的 appspec.yaml:
version: 0.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
TaskDefinition: <TASK_DEFINITION>
LoadBalancerInfo:
ContainerName: "my-test-container"
ContainerPort: 8000
Run Code Online (Sandbox Code Playgroud)
还要确保您的 taskdef.json 包含最终图像的占位符,例如
...
"image": <IMAGE1_NAME>,
...
Run Code Online (Sandbox Code Playgroud)
<IMAGE1_NAME>| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |