Sintaxe do hook AWS::CodeDeploy::BlueGreen
A sintaxe a seguir descreve a estrutura de um hook AWS::CodeDeploy::BlueGreen
para implantações azuis/verdes do ECS.
Sintaxe
"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)
" ] } } } ] } } }
Propriedades
- ID lógico (também chamado de nome lógico)
-
O ID lógico de um hook declarado na seção
Hooks
do modelo. O ID lógico deve ser alfanumérico (A-Z a-z 0-9) e exclusivo no modelo.Obrigatório: Sim
Type
-
O tipo do hook.
AWS::CodeDeploy::BlueGreen
Obrigatório: Sim
Properties
-
Propriedades do hook.
Obrigatório: Sim
TrafficRoutingConfig
-
Definição das configurações de roteamento de tráfego.
Obrigatório: não
A configuração padrão é o deslocamento de tráfego canário baseado em tempo, com uma porcentagem de 15% de etapa e um tempo de incorporação de cinco minutos.
Type
-
O tipo de deslocamento de tráfego usado pela configuração de implantação.
Valores válidos: AllAtOnce | TimeBasedCanary | TimeBasedLinear
Obrigatório: Sim
TimeBasedCanary
-
Especifica uma configuração que desloca o tráfego de uma versão da implantação para outra em incrementos de dois.
Necessário: Condicional: se você especificar
TimeBasedCanary
como o tipo de roteamento de tráfego, deverá incluir o parâmetroTimeBasedCanary
.StepPercentage
-
A porcentagem de tráfego a ser deslocado no primeiro incremento de uma implantação
TimeBasedCanary
. A porcentagem da etapa deve ser 14% ou maior.Obrigatório: não
BakeTimeMins
-
O número de minutos entre o primeiro e o segundo deslocamento de tráfego de uma implantação
TimeBasedCanary
.Obrigatório: não
TimeBasedLinear
-
Especifica uma configuração que desloca o tráfego de uma versão da implantação para outra em incrementos iguais, com um número igual de minutos entre cada incremento.
Necessário: Condicional: se você especificar
TimeBasedLinear
como o tipo de roteamento de tráfego, deverá incluir o parâmetroTimeBasedLinear
.StepPercentage
-
A porcentagem de tráfego deslocado no início de cada incremento de uma implantação
TimeBasedLinear
. A porcentagem da etapa deve ser 14% ou maior.Obrigatório: não
BakeTimeMins
-
O número de minutos entre cada deslocamento de tráfego incremental de uma implantação
TimeBasedLinear
.Obrigatório: não
AdditionalOptions
-
Opções adicionais para a implantação azul/verde.
Obrigatório: não
TerminationWaitTimeInMinutes
-
Especifica o tempo de espera, em minutos, antes de encerrar os recursos azuis.
Obrigatório: não
LifecycleEventHooks
-
Use hooks de eventos de ciclo de vida para especificar uma função do Lambda que o CodeDeploy possa chamar para validar uma implantação. É possível usar a mesma função ou uma diferente para os eventos de ciclo de vida de implantação. Após a conclusão dos testes de validação, a função do Lambda
AfterAllowTraffic
chama de volta o CodeDeploy e entrega um resultado deSucceeded
ouFailed
. Para mais informações, consulte a seção “Hooks” do AppSpec no Guia do usuário do AWS CodeDeploy.Obrigatório: não
BeforeInstall
-
Função a ser usada para executar tarefas antes que o conjunto de tarefas de substituição seja criado.
Obrigatório: não
AfterInstall
-
Função a ser usada para executar tarefas depois que o conjunto de tarefas de substituição for criado e um dos grupos de destino for associado a ele.
Obrigatório: não
AfterAllowTestTraffic
-
Função a ser usada para executar tarefas depois que o listener de teste distribuir o tráfego para o conjunto de tarefas de substituição.
Obrigatório: não
BeforeAllowTraffic
-
Função a ser usada para executar tarefas depois que o segundo grupo de destino for associado ao conjunto de tarefas de substituição, mas antes que o tráfego seja deslocado para o conjunto de tarefas de substituição.
Obrigatório: não
AfterAllowTraffic
-
Função a ser usada para executar tarefas depois que o segundo grupo de destino distribuir o tráfego para o conjunto de tarefas de substituição.
Obrigatório: não
ServiceRole
-
A função de execução a ser usada pelo CloudFormation para executar as implantações azul/verde. Para obter uma lista das permissões necessárias, consulte Permissões do IAM para implantações azuis/verdes.
Obrigatório: Sim
Applications
-
Especifica as propriedades do aplicativo do Amazon ECS.
Obrigatório: Sim
Target
-
Obrigatório: Sim
Type
-
O tipo de recurso.
Obrigatório: Sim
LogicalID
-
O ID lógico do recurso.
Obrigatório: Sim
ECSAttributes
-
Os recursos que representam os vários requisitos de sua implantação de aplicativos do Amazon ECS.
Obrigatório: Sim
TaskDefinitions
-
O ID lógico do AWS::ECS::TaskDefinition recurso para executar o contêiner do Docker que contém seu aplicativo do Amazon ECS.
Obrigatório: Sim
TaskSets
-
Os IDs lógicos dos recursos AWS::ECS::TaskSet a serem usados como conjuntos de tarefas para o aplicativo.
Obrigatório: Sim
TrafficRouting
-
Especifica os recursos usados para roteamento de tráfego.
Obrigatório: Sim
ProdTrafficRoute
-
O listener é usado pelo load balancer para direcionar o tráfego para seus grupos de destino.
Obrigatório: Sim
Type
-
O tipo do recurso.
AWS::ElasticLoadBalancingV2::Listener
Obrigatório: Sim
LogicalID
-
O ID lógico do recurso.
Obrigatório: Sim
TestTrafficRoute
-
O listener é usado pelo load balancer para direcionar o tráfego para seus grupos de destino.
Obrigatório: Sim
Type
-
O tipo do recurso.
AWS::ElasticLoadBalancingV2::Listener
Obrigatório: Sim
LogicalID
-
O ID lógico do recurso.
Obrigatório: não
TargetGroups
-
ID lógico dos recursos a serem usados como grupos de destino para rotear o tráfego para o destino registrado.
Obrigatório: Sim