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
필수 항목 여부: 예