Sintaxe do hook AWS::CodeDeploy::BlueGreen - AWS CloudFormation

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âmetro TimeBasedCanary.

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âmetro TimeBasedLinear.

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 de Succeeded ou Failed. 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