Amazon ecs AWS ECS蓝色/绿色代码管道:尝试读取图像瑕疵时发生异常
我想创建一个CodePipeline,它从CodeCommit源代码构建一个容器映像,然后以蓝色/绿色的方式将新映像部署到我的ECS服务(EC2 launchtype)Amazon ecs AWS ECS蓝色/绿色代码管道:尝试读取图像瑕疵时发生异常,amazon-ecs,aws-code-deploy,aws-codepipeline,aws-codebuild,blue-green-deployment,Amazon Ecs,Aws Code Deploy,Aws Codepipeline,Aws Codebuild,Blue Green Deployment,我想创建一个CodePipeline,它从CodeCommit源代码构建一个容器映像,然后以蓝色/绿色的方式将新映像部署到我的ECS服务(EC2 launchtype) 源阶段是CodeCommit,它已经包含appspec.json 以及taskdef.json 构建阶段是构建新的 容器&成功将其推送到ECR,文件 imagedefinition.json是在此步骤中创建的BuildArtifact, 包含容器和最近创建的图像及其 与CodeCommit commit-id相对应的标记 部署
- 源阶段是CodeCommit,它已经包含appspec.json
以及taskdef.json - 构建阶段是构建新的 容器&成功将其推送到ECR,文件 imagedefinition.json是在此步骤中创建的BuildArtifact, 包含容器和最近创建的图像及其 与CodeCommit commit-id相对应的标记
- 部署阶段 由使用 SourceArtifact和BuildArtifact作为InputArtifacts,以 源工件和图像中的appspec和taskdef 来自BuildArtifact的描述,以最终部署新的 蓝色/绿色方式的容器
[3] :教程:使用Amazon ECR源和ECS创建一个管道,以进行CodeDeploy部署回答我自己的问题,希望它能帮助其他面临同样情况的人
version: 0.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
TaskDefinition: <TASK_DEFINITION>
LoadBalancerInfo:
ContainerName: "my-test-container"
ContainerPort: 8000
版本:0.0
资源:
-目标服务:
类型:AWS::ECS::服务
特性:
任务定义:
LoadBalancer信息:
ContainerName:“我的测试容器”
集装箱港口:8000
还要确保taskdef.json包含最终图像的占位符,如
...
"image": <IMAGE1_NAME>,
...
。。。
“图像”:,
...
在这里回答我自己的问题,希望它能帮助其他面临同样情况的人
version: 0.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
TaskDefinition: <TASK_DEFINITION>
LoadBalancerInfo:
ContainerName: "my-test-container"
ContainerPort: 8000
版本:0.0
资源:
-目标服务:
类型:AWS::ECS::服务
特性:
任务定义:
LoadBalancer信息:
ContainerName:“我的测试容器”
集装箱港口:8000
{"ImageURI":"########.dkr.ecr.eu-west-1.amazonaws.com/##/#####:2739511dd87d4e4e1f65ed69c9e779b63fb72e36-master-fbe73fdc-6213-4bd6-a784-dcc3d2ae7845"}
{
"containerDefinitions": [
{
"name": "ronantest1",
"image": "<IMAGE1_NAME>",
]
}
{
"version": 0.0,
"Resources": [
{
"TargetService": {
"Type": "AWS::ECS::Service",
"Properties": {
"TaskDefinition": "<TASK_DEFINITION>",
"LoadBalancerInfo": {
"ContainerName": "ronantest1",
"ContainerPort": "8080"
}
}
}
}
],
"Hooks": [
{
"AfterAllowTestTraffic": "arn:aws:lambda:eu-west-1:######:function:code-deploy-after-allow-test-traffic"
}
]
}
- Name: BlueGreenDeploy
InputArtifacts:
- Name: BuildDockerOutput
- Name: PrepareCodeDeployOutputTesting
Region: !Ref DeployRegion1
ActionTypeId:
Category: Deploy
Owner: AWS
Version: '1'
Provider: CodeDeployToECS
RoleArn: !Sub arn:aws:iam::${TestingAccountId}:role/######/CrossAccountsDeploymentRole
Configuration:
AppSpecTemplateArtifact: PrepareCodeDeployOutputTesting
AppSpecTemplatePath: appspec.json
ApplicationName: !Ref ApplicationName
DeploymentGroupName: !Ref ApplicationName
TaskDefinitionTemplateArtifact: PrepareCodeDeployOutputTesting
TaskDefinitionTemplatePath: taskdef.json
Image1ArtifactName: BuildDockerOutput
Image1ContainerName: "IMAGE1_NAME"
RunOrder: 4