AWS::CodeDeploy::BlueGreen 후크 구문 - AWS CloudFormation

AWS::CodeDeploy::BlueGreen 후크 구문

다음 구문은 ECS 블루/그린 배포를 위한 AWS::CodeDeploy::BlueGreen 후크 구조를 설명합니다.

구문

"Hooks": { "Logical ID": { "Type": "AWS::CodeDeploy::BlueGreen", "Properties": { "TrafficRoutingConfig": { "Type": "Traffic routing type", "TimeBasedCanary": { "StepPercentage": Integer, "BakeTimeMins": Integer }, "TimeBasedLinear": { "StepPercentage": Integer, "BakeTimeMins": Integer } }, "AdditionalOptions": {"TerminationWaitTimeInMinutes": Integer}, "LifecycleEventHooks": { "BeforeInstall": "FunctionName", "AfterInstall": "FunctionName", "AfterAllowTestTraffic": "FunctionName", "BeforeAllowTraffic": "FunctionName", "AfterAllowTraffic": "FunctionName" }, "ServiceRole": "CodeDeployServiceRoleName", "Applications": [ { "Target": { "Type": "AWS::ECS::Service", "LogicalID": "Logical ID of AWS::ECS::Service" }, "ECSAttributes": { "TaskDefinitions": [ "Logical ID of AWS::ECS::TaskDefinition (Blue)", "Logical ID of AWS::ECS::TaskDefinition (Green)" ], "TaskSets": [ "Logical ID of AWS::ECS::TaskSet (Blue)", "Logical ID of AWS::ECS::TaskSet (Green)" ], "TrafficRouting": { "ProdTrafficRoute": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "LogicalID": "Logical ID of AWS::ElasticLoadBalancingV2::Listener (Production)" }, "TestTrafficRoute": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "LogicalID": "Logical ID of AWS::ElasticLoadBalancingV2::Listener (Test)" }, "TargetGroups": [ "Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Blue)", "Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Green)" ] } } } ] } } }

속성

논리적 ID(논리명이라고도 함)

템플릿의 Hooks 섹션에서 선언된 후크의 논리적 ID입니다. 논리적 ID는 영숫자(A-Za-z0-9)여야 하며 템플릿 내에서 고유해야 합니다.

필수 항목 여부: 예

Type

후크의 유형입니다. AWS::CodeDeploy::BlueGreen

필수 항목 여부: 예

Properties

후크의 속성

필수 항목 여부: 예

TrafficRoutingConfig

트래픽 라우팅 구성 설정

필수 항목 여부: 아니요

기본 구성은 시간 기반 카나리 트래픽 이동으로 15% 단계 비율 및 5분 베이크 시간입니다.

Type

배포 구성에 사용되는 트래픽 이동 유형

유효한 값: AllAtOnce | TimeBasedCanary | TimeBasedLinear

필수 항목 여부: 예

TimeBasedCanary

배포의 한 버전에서 다른 버전으로 트래픽을 2씩 증분하여 이동하는 구성을 지정합니다.

필수: 조건부: 트래픽 라우팅 유형으로 TimeBasedCanary를 지정하는 경우 TimeBasedCanary 파라미터를 포함시켜야 합니다.

StepPercentage

TimeBasedCanary 배포의 첫 번째 증분에서 이동할 트래픽의 비율입니다. 단계 비율은 14% 이상이어야 합니다.

필수 항목 여부: 아니요

BakeTimeMins

TimeBasedCanary 배포의 첫 번째와 두 번째 트래픽 이동 사이의 시간(분)입니다.

필수 항목 여부: 아니요

TimeBasedLinear

동일한 증분(각 증분 사이에 동일한 시간(분) 지정)을 사용하여 배포의 한 버전에서 다른 버전으로 트래픽을 이동하는 구성을 지정합니다.

필수: 조건부: 트래픽 라우팅 유형으로 TimeBasedLinear를 지정하는 경우 TimeBasedLinear 파라미터를 포함시켜야 합니다.

StepPercentage

TimeBasedLinear 배포의 각 증분이 시작될 때 이동되는 트래픽의 비율. 단계 비율은 14% 이상이어야 합니다.

필수 항목 여부: 아니요

BakeTimeMins

TimeBasedLinear 배포의 각 증분 트래픽 이동 사이의 시간(분)

필수 항목 여부: 아니요

AdditionalOptions

블루/그린 배포를 위한 추가 옵션

필수 항목 여부: 아니요

TerminationWaitTimeInMinutes

블루 리소스를 종료하기 전에 대기할 시간(분)을 지정합니다.

필수 항목 여부: 아니요

LifecycleEventHooks

수명 주기 이벤트 후크를 사용하여 CodeDeploy가 배포를 검증하기 위해 호출할 수 있는 Lambda 함수를 지정합니다. 배포 수명 주기 이벤트에 동일한 함수 또는 다른 함수를 사용할 수 있습니다. 검증 테스트가 완료되면 Lambda AfterAllowTraffic 함수는 CodeDeploy를 다시 호출하고 Succeeded 또는 Failed 결과를 전달합니다. 자세한 내용을 알아보려면 AWS CodeDeploy 사용 설명서AppSpec '후크' 섹션을 참조하세요.

필수 항목 여부: 아니요

BeforeInstall

대체 작업 세트가 생성되기 전에 작업을 실행할 때 사용하는 함수

필수 항목 여부: 아니요

AfterInstall

대체 작업 세트가 생성되었고 대상 그룹 중 하나가 연결된 후 작업을 실행할 때 사용하는 함수

필수 항목 여부: 아니요

AfterAllowTestTraffic

테스트 리스너가 대체 작업 세트에 트래픽을 제공한 후 작업을 실행할 때 사용하는 함수

필수 항목 여부: 아니요

BeforeAllowTraffic

트래픽이 대체 작업 세트로 이동되기 전에 두 번째 대상 그룹이 대체 작업 세트와 연결된 후 작업을 실행할 때 사용하는 함수

필수 항목 여부: 아니요

AfterAllowTraffic

두 번째 대상 그룹이 대체 작업 세트에 트래픽을 제공한 후 작업을 실행할 때 사용하는 함수

필수 항목 여부: 아니요

ServiceRole

블루 그린 배포를 수행할 때 사용하는 CloudFormation에 대한 실행 역할. 필요한 권한의 목록은 블루/그린 배포를 위한 IAM 권한 섹션을 참조하세요.

필수 항목 여부: 예

Applications

Amazon ECS 애플리케이션의 속성을 지정합니다.

필수 항목 여부: 예

Target

필수 항목 여부: 예

Type

리소스의 유형.

필수 항목 여부: 예

LogicalID

리소스의 논리적 ID

필수 항목 여부: 예

ECSAttributes

Amazon ECS 애플리케이션 배포의 다양한 요구 사항을 나타내는 리소스

필수 항목 여부: 예

TaskDefinitions

Amazon ECS 애플리케이션이 포함된 Docker 컨테이너를 실행하기 위한 AWS::ECS::TaskDefinition 리소스의 논리적 ID

필수 항목 여부: 예

TaskSets

애플리케이션의 작업 세트로 사용할 AWS::ECS::TaskSet 리소스의 논리적 ID

필수 항목 여부: 예

TrafficRouting

트래픽 라우팅에 사용되는 리소스를 지정합니다.

필수 항목 여부: 예

ProdTrafficRoute

대상 그룹으로 트래픽을 보내는 데 로드 밸런서에서 사용할 리스너

필수 항목 여부: 예

Type

리소스의 유형입니다. AWS::ElasticLoadBalancingV2::Listener

필수 항목 여부: 예

LogicalID

리소스의 논리적 ID

필수 항목 여부: 예

TestTrafficRoute

대상 그룹으로 트래픽을 보내는 데 로드 밸런서에서 사용할 리스너

필수 항목 여부: 예

Type

리소스의 유형입니다. AWS::ElasticLoadBalancingV2::Listener

필수 항목 여부: 예

LogicalID

리소스의 논리적 ID

필수 항목 여부: 아니요

TargetGroups

트래픽을 등록된 대상으로 라우팅하기 위해 대상 그룹으로 사용할 리소스의 논리적 ID

필수 항목 여부: 예